无法从crontab执行脚本

时间:2015-10-23 10:26:26

标签: perl crontab execution cron-task

我能够从命令行执行脚本。 我这样执行它:

/path/to/script run

但是从下面的cron执行它时,页面不会出现:

55     11 * * 2-6   /path/to/script.pl run   >> /tmp/script.log              2>&1

获取网页的行使用LWP::Simple

my $site = get("http://sever.com/page") ;

我没有做任何事情。该页面有效且可访问。 只有当我从crontab执行此脚本时,我才会获得enpty页面。我可以从命令行执行它!  Crontab由root拥有。工作以root身份执行。

提前感谢任何线索!

2 个答案:

答案 0 :(得分:1)

很难说出可能导致此问题的原因,但您的环境与crontab创建的环境之间存在差异。

您可以尝试通过具有适当args的shell运行它来构建您的用户环境:

55 11 * * 2-6 /bin/tcsh -l /path/to/script.pl run >> /tmp/script.log 2>&1

我假设您正在使用自己的用户ID由cron运行它。如果您不是,那么显然您应该尝试使用cron用来运行它的用户ID手动运行它。

答案 1 :(得分:0)

如果环境变量没有区别(例如那些指定使用代理的变量),我相信你正在与SElinux发生冲突。除此之外,它会阻止后台应用程序(例如cron作业)访问Internet,除非您明确允许它们这样做。我不知道该怎么做,但你应该很容易找到。