我有一个 cron 作业,应该执行 bash 脚本。我已经确认 bash 脚本确实可以工作,因为 cron 作业在我的本地计算机上可以正常工作。
但是,该 cron 作业似乎并未在我有权访问的远程计算机上触发。作为测试,我正在执行触摸命令。我的 cron 工作如下:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
21 12 * * * /usr/bin/touch /home/aidan/test.txt
此 cron 作业应在“/usr/bin/touch”中创建一个 test.txt 文件。然而,它似乎根本没有发射。
为了调试,我使用以下 2 个命令查看了“/var/log/syslog”:
- sudo cat /var/log/syslog | sudo cat /var/log/syslog | grep -w 'cron' 在此命令中,我得到以下输出:
Dec 13 20:21:01 onecup cron[1628]: (aidan) RELOAD (crontabs/aidan)
- sudo grep CRON /var/log/syslog.txt在此命令中,我得到以下输出:
Dec 13 17:17:01 onecup CRON[1060280]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dec 13 18:17:01 onecup CRON[1120928]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dec 13 19:17:01 onecup CRON[1180117]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dec 13 20:17:01 onecup CRON[1238901]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
请注意,在此命令中根本不会出现 cron 作业。
我的期望是 CMD 应该出现。
简而言之,看起来 cronjob 正在重新加载,但是绝不实际上射击。有人有什么想法吗?
另外,请注意我确实在这里看到了这一点:https://stackoverflow.com/questions/60842683/cron-not-running-tasks-ubuntu-18-04。
它没有解决问题。
答案1
我发现问题:机器在 UTC 区域运行,而我在 PST 区域运行。因此 cron 作业没有在预期的当地时间执行。