我试图创建一个在数字海洋上运行 ruby 代码的 cron 作业,但似乎我犯了一个错误。它不会给出任何错误,但也不执行任何操作。我在我的树莓派上运行了这个 cronjob,但是在数字海洋上它不起作用。这是我的定时任务
59 17 * * * ruby /home/workspace/delta/analytics/analyze.rb 7 >> /home/testruby
它创建 testruby 文件,但analyze.rb 7 不起作用。我测试了运行 ruby /home/ .... 并且它正在工作。可能是什么问题?
更新
错误文件: bin/sh: 1: /usr/local/bin/ruby: 未找到
这是我在 crontab 中写的
* * * * * /usr/local/bin/ruby /home/workspace/deriva/analytics/analyze.rb 7 >> /home/testruby 2>&1
答案1
不同的环境变量、工作目录……您需要调试analyze.rb 的确切位置。
首先,您仅重定向标准输出,而不重定向标准错误。错误可能会发生在后面,因此2>&1
在末尾添加 a 可能会有很大帮助。或者EMAIL=
在 crontab 顶部进行设置,将它们邮寄给您。
您可以确认 ruby 正在启动print "starting!\n"
或类似于 Ruby 脚本的开头,并查看日志文件中是否显示该情况。