Perl Cron Job不起作用

时间:2013-07-09 04:35:09

标签: perl cron

首先,我:

 sudo crontab -e -u adrian

然后我补充说:

 * * * * * cd /home/adrian/app/; perl -I /home/adrian/app/lib/ script/db/log_to_db.pl

这应该让脚本每分钟运行一次。此脚本使用新数据修改数据库。 所以我每分钟检查一下我的数据库。没有数据。 “上次更新”时间列也不会更改。我检查日志。此日志出现的每一分钟:

 Jul  9 13:32:01 dev1 CROND[28658]: (adrian) CMD (cd /home/adrian/app/; perl -I   /home/adrian/app/lib/ script/db/log_to_db.pl)

这看起来像一个成功的日志。但数据库不会更改,因此脚本未运行。此外,如果我手动在命令行上执行该行:

  cd /home/adrian/app/; perl -I /home/adrian/app/lib/ script/db/log_to_db.pl

数据库发生变化,脚本运行没有问题!我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

由于命令从命令行运行正常,问题很可能是一些缺少的环境变量。而不是直接从cron作业运行perl,运行一个设置环境然后运行perl的包装脚本。这样的事情应该有效(假设您根据需要使用bash-adjust登录):

#!/bin/bash

source /home/adrian/.bash_profile
cd /home/adrian/app/
perl -I /home/adrian/app/lib/ script/db/log_to_db.pl