手動跑得好好的腳本,放進crontab就悄悄不執行,日誌里連報錯都沒有。crontab的環境和登錄shell不是一回事,手動能跑不等於定時能跑。定時任務失效,先別懷疑腳本寫錯了,路徑與環境變數先核對,這兩處佔了大半原因。
⚡ 先確認任務到底跑沒跑
查的第一步是確認任務有沒有被執行,而不是猜。crontab里加一行把輸出寫進日誌文件,比如結尾加上 >> /tmp/cron.log 2>&1,到了時間點看文件有沒有內容。系統日誌也可以看,grep CRON /var/log/syslog 能看到每次任務的觸發記錄。更直接的辦法是在腳本開頭寫一行帶時間的標記,比如 date >> /tmp/cron-run.log,時間到了文件里有沒有新的一行,一看就知道任務跑沒跑。跑都沒跑,是調度的問題;跑了但沒結果,是腳本里的問題,兩條線分開查。
⚡ 路徑問題:相對路徑在定時任務里不認
手動執行時當前目錄是你站的地方,腳本里寫 ./backup.sh 或者 data/file.txt 都能找到。crontab執行時當前目錄一般是用戶家目錄,相對路徑指的地方完全不一樣,文件找不到就直接失敗。解決辦法是全改成絕對路徑,腳本路徑、讀寫的文件、調用的命令,全部寫全。命令也別只寫名字,which python3 看一下完整路徑寫進去。腳本開頭加一行 cd 到工作目錄,能省掉很多麻煩,但文件路徑還是建議寫絕對的,穩妥。
ShockHosting是一家美國主機商家,2013年成立,總部在美國新澤西州,從虛擬主機與域名註冊起家,2014年上線分銷主機,2015年加入VPS,2025年11月成為ICANN認證註冊商。它的虛擬主機與VPS都帶面板,定時任務可以在面板里設,也可以在系統里用crontab管。
相關服務:ShockHosting
具體參考文章:ShockHosting 2026年最新虛擬主機註冊教程:三檔套餐怎麼選
路徑與環境都核對過還不行,先別急著提工單,主機商客服響應慢:先自查再提工單的清單里有先自查再提工單的清單,把日誌與報錯貼上去,客服定位起來也快得多。
⚡ 環境變數問題:PATH與家目錄都要對上
crontab里的環境變數少得可憐,PATH只有系統默認的那幾項,手動裝在 /usr/local/bin 或者家目錄下的命令,定時任務里找不到。解決辦法有兩個,要麼在crontab開頭寫上完整的PATH,要麼在腳本里用絕對路徑調用每個命令。家目錄相關的變數也一樣,腳本里用到 ~ 或者 $HOME 的地方,定時任務里不一定能展開,直接寫絕對路徑最穩。改完之後別等下一個整點,用 crontab 里的時間格式先設一個兩分鐘後執行的測試任務,確認跑通了再改回正式時間。
VPSMVP部落 - 便宜VPS|VPS優惠|VPS測評|美國VPS|VPS教程






