1. 程式人生 > >linux crontab定時任務未執行

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