Perl脚本运行正常,但作为crontab它不起作用

时间:2012-09-28 13:15:35

标签: perl cron crontab asterisk

我有一个Perl脚本,它将值插入到Mysql DB中。在同一个脚本中,我检查一个条件,如果成功,请转到星号CLI并运行originate命令。当我在终端中运行它时,它正常工作。当我将其设置为crontab时,它将更新数据库,但是originate命令不起作用。我是Perl的新手,请帮我解决这个问题。提前谢谢。

Perl脚本:

if($temperature > 85){
    print `asterisk -rx "originate Dongle/dongle0/0123456789 extension 400\@out"`;
}

crontab的:

*/1 * * * *   /home/test/bin/insert_mysql.pl

1 个答案:

答案 0 :(得分:6)

Cron 有不同的环境:他没有PATH环境变量,所以你必须始终使用命令的完整路径;并且,当前目录通常是未定义的,因此在打开文件时一定要小心;此外,它没有区域设置,但我认为它不是你的情况。

因此,您必须提供asterisk的完整路径并提交Dongle/dongle0/0123456789(如果是文件)