Mik*_*ike 6 ruby cron rvm tiny-tds
我的脚本使用mysql,tiny_tds,fileutils和net/ftp.在ruby 1.9.3上运行.当我从文件夹内部运行它时,它工作得很好.
但是,当我将它添加到cron选项卡时,tiny_tds经常失败.我不知道是否有任何其他宝石失败,因为我无法通过此错误:
require':没有要加载的文件 - tiny_tds(LoadError)
我尝试从crontab使用的同一个shell执行它,我得到了那个错误.
整个脚本只有一个文件.
我是红宝石的新手,所以我的知识在以正确的方式设置环境方面是有限的.
在我的文件的头部
#!/usr/bin/ruby
require "mysql"
require "fileutils";
require "tiny_tds"
require "net/ftp"
Run Code Online (Sandbox Code Playgroud)
简而言之,我从mysql获取了一个Jobs列表,将其与MsSQL进行比较,将FTP文件与之相比较,并在作业完成时再次更新mysql.
我需要从cron运行它.
经过一段时间的研究,我试图将宝石设置为全局,但是,我认为这可能没有用.
在此先感谢您的帮助!
这是因为当crond执行代码时,命令行中的环境变量不会被设置.通常的嫌疑人是PATH
,LD_LIBRARY_PATH
和登录时设置的别名.
你可以看到crond的作用:使用 crontab -e
* * * * * set > /tmp/setvals
Run Code Online (Sandbox Code Playgroud)
创建上面的条目.让它运行一段时间.返回crontab -e
并删除该新条目.
比较在命令行上/tmp/setvals
发出set
命令时shell的内容.然后,您可以采取措施修改cron作业环境的内容.
归档时间: |
|
查看次数: |
2526 次 |
最近记录: |