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任務不執行,可參考