linux crontab定时任务未执行
在遇到这次问题之前,我已经多次使用了定时任务,这次也正常设置了定时任务,但是死活发现定时任务没有执行。
crontab设置如下:
bg_action_report.sh内容如下:
#!/bin/sh
#date=`date +%Y%m%d`
#filePath=’/data/hive-data/report/‘
#cd $filePath
rm ‘bg_action_20181118.tar.gz’
整个shell就干了删除bg_action_20181118.tar.gz文件这件事。
但是无论如何我尝试了多次,发现都没有执行删除操作,所以第一反应把定时的任务放到命令行下执行下,
即在/data/hive-data/report/下执行/data/hive-data/report/txt_report.sh>/data/hive-data/report/txt_report.log
发现该shell能正常执行,奇怪了!!!
增加了定时任务
* * */1 * * echo ‘abc’>/data/hive-data/report/abc.txt 来验证,发现该定时任务可以正常执行
ok,能确定了,肯定是shell脚本存在问题,
那为什么在/data/hive-data/report/下执行/data/hive-data/report/txt_report.sh>/data/hive-data/report/txt_report.log是好用的呢?
因为我是在/data/hive-data/report/路径下执行的,被删除的文件bg_action_20181118.tar.gz所在路径也是/data/hive-data/report/。
所以在/data/hive-data/report/路径下执行
rm ‘bg_action_20181118.tar.gz’肯定没问题啊
在非/data/hive-data/report/的任何路径下执行/data/hive-data/report/txt_report.sh都会有问题,会找不到bg_action_20181118.tar.gz
所以修改脚本为:
#!/bin/sh
#date=`date +%Y%m%d`
#下面两行定位路径很重要
filePath=’/data/hive-data/report/‘
cd $filePath
rm ‘bg_action_20181118.tar.gz’
其实就是错误的shell+错误的验证方式,耗费我一个多钟头!!!!
别的crontab任务不执行,可参考
https://blog.csdn.net/u011734144/article/details/54576469
还没有评论,来说两句吧...