crontab失败原因

上一周一直在中心的机器上装系统,中心机器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

你可能感兴趣的:(数据库,ubuntu,command,perl,cron,任务)