python腳本手動可以執行,crontab定時不執行或者報錯的解決方法
crontab定時不執行解決方法
python腳本一定要是絕對路徑
15 9,21 * * * /usr/local/bin/python3 /home/bianzu/bianzu-script/aps_bianzu_monitor.py
執行腳本添加日誌
shell中每個進程都和三個系統文件相關聯:標準輸入stdin、標準輸出stdout、標準錯誤stderr,三個系統文件的文件描述符分別爲0,1,2
2>&1 的意思就是將標準錯誤也輸出到標準輸出當中
15 9,21 * * * /usr/local/bin/python3 /home/bianzu/bianzu-script/aps_bianzu_monitor.py >> /home/bianzu/bianzu-script/log/aps_bianzu_monitor.log 2>&1
crontab定時執行報錯的解決方法
爲crontab引入執行腳本需要的環境變量
如下所示引入了python3、java的完整路徑
10 3,15 * * * export PYSPARK_PYTHON=/usr/local/bin/python3;export JAVA_HOME=/data/bkce/service/java; /usr/local/bin/python3 /home/bianzu/bianzu-script/ne_csv.py >> /home/bianzu/bianzu-script/log/ne_csv.log 2>&1
Crontab用法補充
查看定時任務
crontab -l
修改定時任務
crontab -e
查看腳本文件的執行權限
ll ne_csv.py
賦予腳本文件執行權限
chmod 775 warehouse_monitor.py
查看定時任務執行的日誌
tail -f ne_csv.log
crontab命令格式
minute hour day month week command
minute:表示分鐘 ,0-59
hour:表示小時,0-23
day:日期,1-31
month:月份,1-12
week:星期幾
command:要執行的命令
crond
crond是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程。
系統任務調度:系統週期性所要執行的工作,比如寫緩存數據到硬盤、日誌清理等。
/etc目錄下的crontab文件就是系統任務調度的配置文件
第一行SHELL變量指定了系統要使用的shell
第二行PATH變量指定了系統執行命令的路徑
第三行MAILTO變量指定了crond的任務執行信息將通過電子郵件發送給root用戶