我编写了以下名为/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。然后,如果我将bash脚本放在我的pi用户的crontab中* * * * * /home/pi/test.sh
,我会通过电子邮件将以下cron输出发送给我:
starting script
end of script
没有任何内容发布到Tumblr。为什么没有发生?
答案 0 :(得分:0)
Cron将一小组环境变量传递给您的工作。 您可以使用简单的shell来检查提供的环境crontab:
* * * * * env > /home/pi/cron_env.dat
尝试添加ruby二进制文件的完整路径以执行ruby脚本。
您还可以在crontab文件中设置PATH变量,该变量将应用于所有cron作业。 e.g。
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
* * * * * bash -c /home/pi/test.sh