我正在用 Ruby 重写一些 shell 脚本,这些脚本将用于备份我们网站上的特定内容。我正在运行 Ruby 1.8.7 并让脚本以 root 身份在本地运行,它工作正常。
我刚刚尝试将脚本添加到 Ubuntu 11.10 上的 cronttab。
*/5 * * * * ruby /root/code/backup_images.rb local
当 cron 运行时,我在 syslog 中收到以下错误:
Mar 21 16:15:01 ubuntu CRON[4942]: (root) CMD (ruby /root/code/backup_images.rb local)
Mar 21 16:15:02 ubuntu CRON[4941]: (CRON) error (grandchild #4942 failed with exit status 1)
我尝试了以下解决方案但无济于事:
env -i $SHELL --norc
据说它会创建一个新的裸壳来模仿 crontab 运行的内容,并且这适用于我的脚本。
#!/usr/bin/env ruby
我已将该声明添加到我的脚本顶部,它在手动运行时没有改变功能,也没有解决 crontab 的问题。
我什至尝试将调用的结果输出到一个文件,但这只会创建一个没有任何内容的新文件。
我不确定还有什么问题,但我假设它必须是 Cron 无法找到 Ruby 或类似性质的东西。我对此很陌生,所以我在这里走到了死胡同。
提前致谢!