指令碼手動執行正常,放cron中執行有問題的原因

2022-05-19 11:49:49 字數 535 閱讀 8457

問題原因:

1. crond服務沒啟動

2. 環境變數如 path lang shell 等設定不對

3. 指令碼中引用的檔案位址是相對路徑,而非絕對路徑.

排查步驟:  以 check.sh 為例

先檢查cron日誌中是否有指令碼的執行記錄:  grep check.sh /var/log/cron*

--> 沒有執行的記錄,則crond服務沒啟動. 檢查crond服務狀態: service crond status

--> 有執行記錄,則crond服務執行正常. 指令碼至少是執行過了.

清理掉/var/spool/clientmqueue/下的檔案. 然後修改crontab讓指令碼1分鐘後執行.

待執行完畢後檢視新產生的檔案,

可以看到指令碼執行的報錯以及x-cron-env環境變數.

根據相應的報錯來調整指令碼的**.

最好在寫指令碼的時候在指令碼開頭定義 path lang 等指令碼正常執行所需的環境變數.

指令碼中要使用到的檔案或命令,也最好使用全路徑而非相對路徑.

手動執行指令碼正常,但crontab不執行

1.指令碼內容 0 2 cd usr local datax bin python datax.py job bidresourse.json 2.問題分析 2.1檢視crontab服務狀態systemctl status crontab,檢視日誌tail 222f var log cron 2.2...

python指令碼 測試網頁是否正常執行

導庫 import requests 新增 url 發出請求,並設定超時時間為5秒r requests.get url,timeout 5 獲取狀態碼code r.status code判斷if code 200 print ok 訪問正常 else print error 不能訪問 from ur...

監測服務是否正常執行指令碼

10 cd home work pay data load bash check running status.sh check running status.sh 用於檢查pay data load是否正常執行的指令碼 current path cd dirname 0 pwd 檢查當前執行時間的...