在从 Ubuntu 16.04 升级到 18.04 之前,我有许多 cron 作业运行良好。升级后,我可以在终端中或通过单击 GUI“配置计划任务”中的“运行选定任务”来运行所有定义的作业(使用 crontab -e),但所有这些作业都不会在预定的时间(或任何其他时间)执行...再说一次,我可以使用终端或提到的 GUI 完美地执行所有定义的作业(调用 R 脚本),没有任何问题。
输出cat /var/log/syslog | grep cron
:
Jul 25 16:16:41 usernameVB crontab[10530]: (username) LIST (username)
Jul 25 16:16:50 usernameVB crontab[10535]: (username) LIST (username)
Jul 25 16:16:59 usernameVB crontab[10545]: (username) LIST (username)
Jul 25 16:17:01 usernameVB CRON[10549]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jul 25 16:17:08 usernameVB crontab[10553]: (username) LIST (username)
... (more of the LIST lines)
如何让 cron 作业在定义的时间运行?
编辑:添加了 sudo systemctl status cron.service 的输出:
$sudo systemctl status cron.service
[sudo] password for username:
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: ena
Active: active (running) since Mon 2018-07-23 02:42:23 EDT; 2 days ago
Docs: man:cron(8)
Main PID: 734 (cron)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/cron.service
└─734 /usr/sbin/cron -f
Jul 24 10:17:01 usernameVB CRON[30421]: pam_unix(cron:session): session opene
Jul 24 10:17:01 usernameVB CRON[30422]: (root) CMD ( cd / && run-parts --re
Jul 24 10:17:01 usernameVB CRON[30421]: pam_unix(cron:session): session close
Jul 25 02:17:01 usernameVB CRON[17013]: pam_unix(cron:session): session opene
Jul 25 02:17:01 usernameVB CRON[17013]: pam_unix(cron:session): session close
Jul 25 13:17:01 usernameVB CRON[3767]: pam_unix(cron:session): session opened
Jul 25 13:17:01 usernameVB CRON[3768]: (root) CMD ( cd / && run-parts --rep
Jul 25 13:17:01 usernameVB CRON[3767]: pam_unix(cron:session): session closed
Jul 25 16:17:01 usernameVB CRON[10548]: pam_unix(cron:session): session opene
Jul 25 16:17:01 usernameVB CRON[10548]: pam_unix(cron:session): session close
lines 1-19/19 (END)
编辑 2:我使用$crontab -e
打开的命令创建了作业/tmp/crontab.Rnzw6Y/crontab
。内容如下所示(其中几个在不同时间/日期调用 R 脚本)。
45 15 * * 1-5 /usr/bin/R --vanilla --quiet < /home/username/code/scripts/R_script_1.R 2>&1 | tee -a "/home/username/log/R_script_1.R - `date +\%Y-\%m-\%d\ \%H:\%M:\%S`.log.txt" # JOB_ID_26
让我指出的是,在终端运行这个命令很好:
/usr/bin/R --vanilla --quiet < /home/username/code/scripts/R_script_1.R 2>&1 | tee -a "/home/username/log/R_script_1.R - `date +\%Y-\%m-\%d\ \%H:\%M:\%S`.log.txt"
在从 16.04 升级到 18.04 之前,一切都运行良好。
答案1
首先,我在 Ubuntu 上运行了该命令。
crontab -e
第二步我这样做了:
* * * * * cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1