crontab 无法正常工作

crontab 无法正常工作

当我使用 root 手动运行脚本时,它运行良好。当我在 cron 中执行相同的脚本时,它没有运行。我检查了 cron 是否确实在调用该脚本,但该脚本没有执行。我将脚本中的 echos 输出导出到文本文件,但文本文件没有记录任何内容。请检查此 cron

*/10 * * * *  sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt

答案1

只有使用 crontab -e 添加时,cron 条目才是正确的。如果直接将其添加到 /etc/crontab,则需要包含运行它的用户名。

如果成功创建,cron 应该会缓存到 /var/spool/cron/ 中。

检查脚本权限,chmod +x。

最好包含 shell 的完整路径 /bin/sh,或者直接将其排除。

*/10 * * * * /bin/sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt

另外,您是否在脚本中包含了 shebang 行?它应该以 #!/bin/sh 或 #!/bin/bash 开头

答案2

尝试将以下内容添加到 crontab 行末尾:

 2> /var/www/migrate/error.log.txt

现在提出一些猜想(如果问题不太长的话,您可能已经将脚本添加到问题中):

检查您的脚本以查看是否有一行将变量设置PATH为与您执行时相同的值:

 echo $PATH

请记住,cron 中启动的程序不会执行您登录时发生的任何 shell 初始化文件。

您确定该文件至少具有读取权限吗?...shell 脚本需要的不仅仅是简单的执行权限。您可能ls还包含了该文件的权限。

相关内容