国庆节在家收到OZ报警,说没有接收到需要入库的文件。登陆VPN,上脚本机上看了一下。发现需要上报的文件生成成功,但却没有将文件成功上传到OZ的文件服务器上。
上传文件的代码如下:
在shell下直接执行是成功的,放在crontab下就会有问题。为了定位问题,我将crontab的执行任务输出到一个文件中:
执行之后,在日志文件里发现如下错误信息:
称找不到scp文件,使用whereis scp,发现它的路径为/usr/local/bin/scp,明明在环境变量PATH的路径中啊。百度了一下,才发现crontab和shell所使用的环境变量并不是一致的。/etc/crontab内容如下:
可以看到它所设置的PATH中,并没有包含/usr/local/bin这个目录。
定位到问题,一切都好办了。只需将scp加上全路径就OK了。。