当我使用 root 手动运行脚本时,它工作正常。当我在 cron 中执行相同的脚本时,它没有运行。我检查了 cron 实际上是在调用脚本,但脚本没有执行。我将脚本中的回声输出导出到文本文件,但文本文件没有记录任何内容。请检查这个 cron
*/10 * * * * sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt
另一种避免键入完整可执行路径的方法是将 shell 全局变量放在您的顶部crontab
:
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
MAIL=me@domain.tld
*/10 * * * * stuff > log 2>&1
注意在日志文件中同时记录&的> log 2>&1
语法STDERR
STDOUT
尝试更改sh
为/bin/sh
.
*/10 * * * * /bin/sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt