crontab失败原因

来源:互联网 发布:ug8.0编程网站 编辑:程序博客网 时间:2024/04/29 18:34

上一周一直在中心的机器上装系统,中心机器OS是ubuntu8.04,而我们开发时使用的版本是9.10的。安装过程中问题层出不穷,至今还没有完全搞定,现在很发愁该如何向老师交代。下面是我遇到的一个问题。

使用linux中的cron服务定时执行一个perl脚本时,在export.log中发现如下问题:

/bin/sh:perl command not found

然后用crontab -u hyh -l命令查看了当前的任务列表,如下:

* 8 * * * perl /home/hyh/tor/export_data/export_data.pl >>/home/hyh/tor/export_data/export.log 2>&1

该任务含义是每天8点把数据库的部分记录导出到文件中。

从网上查到,原来环境变量的问题,crontab在执行的时候只会定义少数环境变量而不是继承用户shell环境中的环境变量。因此perl: command not found说明找不到命令,其实是找不到perl可执行文件所在的目录。然后我使用crontab -u hyh -e命令添加了打印PATH环境变量的任务,发现输出中只包含两个目录:/bin:/usr/bin,果然不包含perl所在的目录/usr/local/bin。

解决办法:把perl复制到/bin或/usr/bin目录下。

参考:http://space.itpub.net/21805468/viewspace-621602

原创粉丝点击