【问题标题】:crontab not working properlycrontab 无法正常工作
【发布时间】:2026-02-03 18:05:02
【问题描述】:

当我使用 root 手动运行脚本时,它工作正常。当我在 cron 中执行相同的脚本时,它没有运行。我检查了 cron 实际上是在调用脚本,但脚本没有执行。我将脚本中的回声输出导出到文本文件,但文本文件没有记录任何内容。请检查这个 cron

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

【问题讨论】:

  • 从哪个用户 crontab 运行您的脚本?
  • 添加2>&1重定向以在您的日志文件中获取stderr
  • @Anton 对不起,我是新手。在该脚本中添加此 2>&1 的位置。
  • @pomaxa 我在 ubuntu 服务器的根 cron 下运行它
  • 将其添加到命令的结束重定向到root_restart.txt之后。

标签: linux shell ubuntu crontab


【解决方案1】:

另一种避免键入完整可执行路径的方法是将 shell 全局变量放在 crontab 的顶部:

SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
MAIL=me@domain.tld

*/10 * * * * stuff > log 2>&1

注意> log 2>&1 语法以在日志文件中记录STDERRSTDOUT

【讨论】:

  • 我有同样的问题,当使用 curl 时它不起作用但 /usr/bin/curl 它工作完美
【解决方案2】:

尝试将sh 更改为/bin/sh

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

【讨论】: