首页 > 解决方案 > crontab 不执行 perl 脚本

问题描述

我在安排 crontab 任务时遇到问题;我已经用谷歌搜索并阅读了大量页面,但无法理解给出的解决方案是否特定于示例并且它们似乎无法解决我的问题。

我正在尝试运行一个名为的基本 perl 脚本perl_speedtest.pl,该脚本/home/pi/Documents/Projects位于我的树莓派目录中。当我通过命令手动运行脚本时:perl perl_speedtest.pl从上面的目录中它可以完美运行。

通过在终端中使用“crontab -e”命令,我已将任务安排为每 20 分钟运行一次,并使用以下 crontab 作业:

*/20 * * * * perl /home/pi/Documents/Projects/perl_speedtest.pl

由于某种原因,这不执行..有什么想法吗?如果需要,很高兴分享更多细节。

标签: perlpathcronraspberry-pienvironment-variables

解决方案


cron正如上述评论者指出的那样,正确设置您的环境。否则,cron使用非常小的环境(包括PATH,PERL5LIB等)。您crontab应该看起来像这样,具体取决于您在交互式 shell 中使用它时的实际环境:

HOME=/home/pi
SHELL=/bin/bash
MAIL=/usr/bin/mail

06 */1 * * * source ~/.bashrc &> /dev/null ; perl /home/pi/Documents/Projects/perl_speedtest.pl

# or this (find the perl path by executing "which perl"):

06 */1 * * * /usr/bin/perl /home/pi/Documents/Projects/perl_speedtest.pl

推荐阅读