为什么这个 cronjob 不工作?

为什么这个 cronjob 不工作?

我有一个 ruby​​ 脚本~/custom_scripts/get_all_products.rb

我希望它每天晚上 04:00 运行。

cronjob 如下所示crontab -e

MAILTO="<email>"
0 4 * * * ruby ~/custom_scripts/get_all_products.rb

但它没有执行。

下一步我应该尝试什么?

答案1

我以前在 crontabs 中使用波浪符号扩展时遇到过问题(这可能是在 Linux 以外的 Unix 版本上)。不过,我建议使用$HOME而不是~

另外,最好指定ruby可执行文件的完整路径。cronPATH使用的通常不是您在交互式环境中设置的路径(例如,在我的系统上,cronPATH只是/usr/bin:/bin)。

答案2

我认为您可能需要解决两个问题:

  1. ~ 是 Shell 中的 的同义词$HOME。您应该在 cron 之类的程序中使用它
  2. $HOME可能未正确设置您的命令。crontab -e默认情况下正在编辑 root 的 crontab。不是您的用户之一。只需将 ~ 替换$HOME为绝对路径。

相关内容