加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从cron执行ruby脚本

发布时间:2020-12-17 03:30:54 所属栏目:百科 来源:网络整理
导读:我的脚本使用 mysql,tiny_tds,fileutils和net / ftp.在ruby 1.9.3上运行.当我从文件夹内部运行它时,它工作得很好. 但是,当我将它添加到cron选项卡时,tiny_tds经常失败.我不知道是否有任何其他宝石失败,因为我无法通过此错误: require’: no such file to lo
我的脚本使用 mysql,tiny_tds,fileutils和net / ftp.在ruby 1.9.3上运行.当我从文件夹内部运行它时,它工作得很好.

但是,当我将它添加到cron选项卡时,tiny_tds经常失败.我不知道是否有任何其他宝石失败,因为我无法通过此错误:

require’: no such file to load — tiny_tds (LoadError)

我尝试从crontab使用的同一个shell执行它,我得到了那个错误.

整个脚本只有一个文件.

我是ruby的新手,所以我的知识在以正确的方式设置环境方面是有限的.

在我的文件的头部

#!/usr/bin/ruby
    require "mysql"
    require "fileutils";
    require "tiny_tds"  
    require "net/ftp"

简而言之,我从mysql获取了一个Jobs列表,将其与MsSQL进行比较,将FTP文件与之相比较,并在作业完成时再次更新mysql.

我需要从cron运行它.

经过一段时间的研究,我试图将宝石设置为全局,但是,我认为这可能没有用.

在此先感谢您的帮助!

解决方法

这是因为当crond执行代码时,命令行中的环境变量不会被设置.通常的嫌疑人是PATH,LD_LIBRARY_PATH和登录时设置的别名.

你可以看看crond做了什么:使用crontab -e

* * * * *  set > /tmp/setvals

创建上面的条目.让它运行一段时间.返回到crontab -e并删除该新条目.

将/ tmp / setvals中的内容与shell在命令行上发出set命令时给出的内容进行比较.然后,您可以采取措施修改cron作业环境的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读