当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

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

#!/bin/sh
/usr/sbin/ntpdate-debian
date > /tmp/william_tmp
date > /william_tmp
date > ~/william_tmp
echo test

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

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

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

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

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

最佳办法

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

次佳办法

您应该查看 /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)

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11945.html,未经允许,请勿转载。