【问题标题】:Cannot run tumblr-rb ruby script in bash script from crontab无法在 crontab 的 bash 脚本中运行 tumblr-rb ruby​​ 脚本
【发布时间】:2014-07-12 06:35:48
【问题描述】:

我编写了以下名为 /home/pi/test.sh 的 bash 脚本(使用 ruby​​ gem“tumblr-rb”):

#!/bin/bash
echo "starting script"
/usr/local/bin/tumblr post /home/pi/test.jpg --host=myhost.tumblr.com --credentials=/home/pi/.tumblr 
echo "end of script"

如果我从命令行运行它,我会得到:

starting script
Post was successfully created! Post ID: 82238814640
end of script

我的照片被发布到 Tumblr。然后,如果我使用* * * * * /home/pi/test.sh 将 bash 脚本放入我的 pi 用户的 crontab 中,我会通过电子邮件收到以下 cron 输出:

starting script
end of script

没有任何东西被发布到 Tumblr。为什么什么都没发生?

【问题讨论】:

    标签: ruby bash crontab


    【解决方案1】:

    Cron 将一组最小的环境变量传递给您的作业。 您可以使用简单的 shell 来检查 crontab 提供的环境:

    * * * * * env > /home/pi/cron_env.dat
    

    尝试添加 ruby​​ 二进制文件的完整路径以执行 ruby​​ 脚本。

    您还可以在 crontab 文件中设置 PATH 变量,该变量将应用于所有 cron 作业。例如

    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    * * * * * bash -c /home/pi/test.sh
    

    【讨论】:

    • 这很有帮助,但还没有解决问题。我将 PATH 从我的环境添加到 crontab,并在 bash 脚本中添加了 ruby​​ 的完整路径。结果相同。
    • 没有骰子。 -c 选项有什么作用?
    猜你喜欢
    • 2014-02-20
    • 2019-03-23
    • 1970-01-01
    • 2017-12-02
    • 2018-08-10
    • 1970-01-01
    • 2016-10-20
    • 2019-02-17
    相关资源
    最近更新 更多