1. 程式人生 > >Linux定時任務沒有執行問題分析與總結

Linux定時任務沒有執行問題分析與總結

現在總結一下:

定時任務沒有被執行有以下兩種可能:

1、被執行的指令碼沒有執行許可權,這種情況 直接授權

chmod 755 xxx.sh

2、被執行的指令碼編碼有問題,這種情況直接轉碼
  
dos2unix xxx.sh

我們也可下載一個windows版的dos2unix,轉完碼後再上傳到Linux伺服器

補充:linux定時任務

每天早上6點
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從螢幕上看不到任何輸出,因為cron把任何輸出都email到root的信箱了。

每兩個小時
0 */2 * * * echo "Have a break now." >> /tmp/test.txt 

晚上11點到早上8點之間每兩個小時和早上八點
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * 1-3 command line

1月1日早上4點
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出現錯誤,或者有資料輸出,資料作為郵件發給這個帳號 HOME=/

每小時執行/etc/cron.hourly內的指令碼

01 * * * * root run-parts /etc/cron.hourly

每天執行/etc/cron.daily內的指令碼

02 4 * * * root run-parts /etc/cron.daily

每星期執行/etc/cron.weekly內的指令碼
22 4 * * 0 root run-parts /etc/cron.weekly

crontab許可權問題到/var/adm/cron/下一看,檔案cron.allow和cron.deny是否存在

用法如下:

1、如果兩個檔案都不存在,則只有root使用者才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,則只有列在cron.allow檔案裡的使用者才能使用crontab命令,如果root使用者也不在裡面,則root使用者也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,則只有列在cron.deny檔案裡面的使用者不能使用crontab命令,其它使用者都能使用。
4、如果兩個檔案都存在,則列在cron.allow檔案中而且沒有列在cron.deny中的使用者可以使用crontab,如果兩個檔案中都有同一個使用者,
以cron.allow檔案裡面是否有該使用者為準,如果cron.allow中有該使用者,則可以使用crontab命令。