问题描述
我有一个看起来像这样的 crontab 文件:
* * * * * /home/abliskovs/update/update.sh
但是,当我检查系统日志以获取作业已运行的证据时,没有任何迹象表明它曾经运行过。我如何检查它是否正在运行?
crontab -l
输出以下内容:
* * * * * /home/abliskovs/update/update.sh
最佳答案
\\n
Add a >>/tmp/testlog.log to the end of your crontab entry (to redirect\\n output to a file you can investigate or check if it’s running,\\n additionally a 2>&1 would include output from the error console)
\\n
例子
\\n
0 * * * * /home/abliskovs/update/update.sh 2>&1 /tmp/testlog.log
\\n
还要确保以下内容:
-
以正确的方式添加 cronjobs。如果您在自己的帐户中使用了 crontab -e,则脚本将与您的用户一起运行(因此\ncrontab 条目少了一个字段 — 运行它的用户,这是已知的)。如果您只是将上面的片段复制到 /etc/cron.d,\n它会失败,因为您没有指定用户(或者更确切地说,因为它找不到\n名为 “bash” 的用户)。
-
确保脚本文件是可执行的,否则它不会\n执行。
-
重新加载 cron 作业 sudo service reload,或重新启动 cron 服务
sudo /etc/init.d/cron restart
如何使文件可执行?
使文件可执行的几种方法
chmod +x /home/abliskovs/update/update.sh
chmod -R 0755 /home/abliskovs/update/update.sh
chmod a+x /home/abliskovs/update/update.sh
次佳答案
确保脚本文件是可执行的 {chmod 755} 否则不会执行