加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读