crontab失败原因

在使用Cron定时执行Perl脚本时遇到perl command not found错误。原因是Cron环境中未正确设置PATH环境变量导致无法找到Perl可执行文件。通过修改Cron任务设置PATH环境变量或复制Perl到默认搜索路径解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值