我有一个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
答案 0 :(得分:6)
Cron 有不同的环境:他没有PATH环境变量,所以你必须始终使用命令的完整路径;并且,当前目录通常是未定义的,因此在打开文件时一定要小心;此外,它没有区域设置,但我认为它不是你的情况。
因此,您必须提供asterisk
的完整路径并提交Dongle/dongle0/0123456789
(如果是文件)