crontab定時任務不執行的原因

2021-09-07 18:54:15 字數 988 閱讀 9904

檢視所有使用者下的定時任務:

foruin`cat/etc/passwd | cut-d":"-f1`;do crontab-l-u $u;done

網上主要說了這5個原因:

1 crond服務未啟動

crontab不是linux核心的功能,而是依賴乙個crond服務,這個服務可以啟動當然也可以停止。如果停止了就無法執行任何定時任務了,解決的方法是開啟它:

crond

或service crond start

如果提示crond命令不存在,可能被誤刪除了,centos下可以通過這個命令重新安裝:

yum -y install crontabs

2 許可權問題

比如:指令碼沒有x執行許可權,解決方法:

增加執行許可權,或者用bash abc.sh的方法執行

3 路徑問題

有的命令在shell中執行正常,但是在crontab執行卻總是失敗。有可能是因為crontab使用的sh未正確識別路徑,比如:以root身份登入shell後執行乙個/root/test.sh,只要執行

./test.sh

就可以了。但是在crontab中,就會找不到這個指令碼,比如寫完整:

/root/test.sh

4 時差問題

因為伺服器與客戶端時差問題,所以crontab的時間以伺服器時間為準。

5 變數問題

有時候命令中含有變數,但crontab執行時卻沒有,也會造成執行失敗。

6. 路徑問題

相對路徑會找不到檔案,要使用絕對路徑。

crontab定時任務不執行的解決辦法

如果出現了crontab定時任務不執行的情況,首先需要定位問題,那麼就需要通過日誌來確定問題所在。crontab的日誌位置一般位於 var log cron,利用下面的語句即可檢視日誌。1tail f var log cron 上面的 var log cron只會記錄是否執行了某些計畫的指令碼,但是...

定時任務Crontab命令 執行批量定時任務

crontab r 刪除目前的時程表 crontab l 列出目前的時程表 crontab file u user 用指定的檔案替代目前的crontab command 要執行的命令 5個星的含義分別是 第乙個 表示分鐘,1 59,每分鐘可以用 和 1表示 第二個 表示小時,0 23 第三個 表示日...

crontab定時任務

今天工作項有個任務是讓ubuntu定時執行某個指令碼,對postgresql資料庫進行定時備份。linux 系統都有個cron定時任務的機制。今天做些筆記,以便日後翻查。注意 cron機制是有個使用者系統的概念的,即分系統cron和使用者cron,每個使用者所執行的cron任務可能不同。1.以roo...