perl – 为什么我的命令行不能从cron运行?
发布时间:2020-12-15 21:15:31 所属栏目:大数据 来源:网络整理
导读:我有一个perl脚本( XMLTV系列“抓取器”的一部分,特别是 tv_grab_oztivo ). 我可以像这样成功运行它: /sw/bin/perl /path/to/tv_grab_oztivo --output /path/to/tv.xml 我使用完整的路径来消除工作目录中的问题.权限应该不是问题. 所以,如果我从终端(Mac OS
我有一个perl脚本(
XMLTV系列“抓取器”的一部分,特别是
tv_grab_oztivo ).
我可以像这样成功运行它: /sw/bin/perl /path/to/tv_grab_oztivo --output /path/to/tv.xml 我使用完整的路径来消除工作目录中的问题.权限应该不是问题. 所以,如果我从终端(Mac OSX)运行它,它的工作正常. 但是,当我将其设置为通过cron作业运行时,似乎根本没有发生任何事情.没有创建输出等. 据我所知,crontab没有任何问题,因为如果我用helloworld.pl替换实际的脚本,它会在正确的时间运行. 那么,我该怎么做才能调试?我可以从两个案例中看到%ENV看到环境非常不同,但我可以采取哪些其他方法进行调试?我怎样才能看到cron作业的输出,这可能是shell中的某种perl“die”消息或“not found”消息或者其他什么? 或者我应该尝试以某种方式给出命令的cron版本与它作为我运行时相同的环境? 解决方法
这通常是因为在cron下运行时没有获得完整的环境.最好的办法是使用以下命令捕获输出:
( /sw/bin/perl /path/to/tv_grab_oztivo ... ) >/tmp/qq 2>&1 然后看看/ tmp / qq. 如果它确实是一个缺失的环境,那么你可能需要把: . ~/.profile 或者类似的东西,进入你的cron作业的执行链,例如: ( . ~/.profile ; /sw/bin/perl /path/to/tv_grab_oztivo ... ) >/tmp/qq 2>&1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |