如何判断我的每小时 cron 作业是否已运行?

wil*_*hil 29 server scripts cron

我创建了一个名为文件ntpdate/etc/cron.hourly

#!/bin/sh
/usr/sbin/ntpdate-debian
date > /tmp/william_tmp
date > /william_tmp
date > ~/william_tmp
echo test
Run Code Online (Sandbox Code Playgroud)

我也对这个文件做了 Chmod 755。

但是,我不知道该文件是否已运行!

该文件未在 3 个目录中的任何一个中创建。

如果我手动运行cd / && run-parts --report /etc/cron.hourly,则会创建文件并得到回声。

任何人都可以推荐(最好是一步一步!)说明来测试它是否正常工作?

Lek*_*eyn 42

您应该查看您的/var/log/syslog日志文件。如果一个 cron 已经运行,它会有如下一行:

Jun 11 19:09:01 penguin CRON[17376]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jun 11 19:17:01 penguin CRON[17799]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Run Code Online (Sandbox Code Playgroud)

有关故障排除提示,请参阅https://help.ubuntu.com/community/CronHowto#Troubleshooting_and_Common_Problems


Mar*_*ppi 26

cron 的一个主要缺陷是 cron 在极其有限的 shell 环境中运行,因此许多变量没有导出到环境中,主要是 $PATH。请确保您使用的所有绝对路径的可执行文件,包括像常用功能echouptimedate,等所有需要使用完整路径(/bin/echo/bin/date/usr/bin/uptime)。要确定可执行文件的路径,您可以使用如下which命令:which echo- 这将显示该工具的完整路径。