Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Ruby脚本的Crontab返回错误代码1_Ruby_Crontab_Ubuntu 11.10 - Fatal编程技术网

带有Ruby脚本的Crontab返回错误代码1

带有Ruby脚本的Crontab返回错误代码1,ruby,crontab,ubuntu-11.10,Ruby,Crontab,Ubuntu 11.10,我正在用Ruby重写一些shell脚本,这些脚本将用于从我们的站点备份特定内容。我运行的是Ruby 1.8.7,脚本以root用户身份在本地运行,运行良好 我刚刚尝试将脚本添加到Ubuntu11.10上的CrontLab */5 * * * * ruby /root/code/backup_images.rb local 当cron运行时,我在系统日志中收到以下错误: Mar 21 16:15:01 ubuntu CRON[4942]: (root) CMD (ruby /root/code/

我正在用Ruby重写一些shell脚本,这些脚本将用于从我们的站点备份特定内容。我运行的是Ruby 1.8.7,脚本以root用户身份在本地运行,运行良好

我刚刚尝试将脚本添加到Ubuntu11.10上的CrontLab

*/5 * * * * ruby /root/code/backup_images.rb local
当cron运行时,我在系统日志中收到以下错误:

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或类似的东西。我对这件事还不太熟悉,所以我在这里已经走到了死胡同


提前谢谢

我认为错误在于您需要在crontab中应用ruby的路径

但就我个人而言,我更倾向于选择要执行的ruby文件的路径

*/5 * * * * /root/code/backup_images.rb local
然后追加

#!/usr/bin/env ruby  
到backup_images.rb的顶部

您还需要使用
chmod+x

我认为错误在于您需要在crontab中将路径应用于ruby

但就我个人而言,我更倾向于选择要执行的ruby文件的路径

*/5 * * * * /root/code/backup_images.rb local
然后追加

#!/usr/bin/env ruby  
到backup_images.rb的顶部

您还需要使用
chmod+x

因此在@tomodachi的帮助下,我更进一步,明确地写出了下面的crontab行,它现在可以工作了

*/15 * * * * cd /root/code/ && ./backup_images.rb local > /root/code/log/script.log
因此,基本上我试图从bash shell执行命令,但它找不到脚本。因此,我显式地进入direct,然后执行备份脚本

从这一点开始,一切都很顺利


感谢您的帮助。

因此,在@tomodachi的帮助下,我更进一步,明确地写出了下面的crontab行,它现在可以工作了

*/15 * * * * cd /root/code/ && ./backup_images.rb local > /root/code/log/script.log
因此,基本上我试图从bash shell执行命令,但它找不到脚本。因此,我显式地进入direct,然后执行备份脚本

从这一点开始,一切都很顺利


感谢您的帮助。

我没有执行权限,文件中的路径不正确。当前调用现在是*/5****/root/code/backup_images.rb local,响应相同。以状态1退出。我没有执行权限,文件中的路径不正确。当前调用现在是*/5****/root/code/backup_images.rb local,响应相同。以状态1退出