expect在crontab下执行失败的问题

国庆节在家收到OZ报警,说没有接收到需要入库的文件。登陆VPN,上脚本机上看了一下。发现需要上报的文件生成成功,但却没有将文件成功上传到OZ的文件服务器上。

上传文件的代码如下:


shell下直接执行是成功的,放在crontab下就会有问题。为了定位问题,我将crontab的执行任务输出到一个文件中:

执行之后,在日志文件里发现如下错误信息:


找不到scp文件,使用whereis scp,发现它的路径为/usr/local/bin/scp,明明在环境变量PATH的路径中啊。百度了一下,才发现crontab和shell所使用的环境变量并不是一致的。/etc/crontab内容如下:

可以看到它所设置的PATH中,并没有包含/usr/local/bin这个目录。

定位到问题,一切都好办了。只需将scp加上全路径就OK了。。

你可能感兴趣的:(Linux)