昨天晚上讓運維幫我更新上線了一個shell腳本,並添加到定時任務中準備凌晨12點06分執行,當我早上5點17醒來的時候,總感受不對就去查郵件看看定時任務是否執行了,一看沒有執行,而後直接遠程到服務器,發現腳本執行只用了6秒,說明腳本是被調用了,那麼就直接排除了缺乏執行權限的問題,那究竟是什麼問題呢?隨後又手動執行了一次,發現報錯說腳本中有回車換行符,奇怪了,忽然明白是windows和linux的編碼格式不同,立刻用dos2unix對文件進行了轉碼,再執行,一切正常了,這點值得注意!linux
如今總結一下:shell
定時任務沒有被執行有如下兩種可能:windows
一、被執行的腳本沒有執行權限,這種狀況 直接受權服務器
chmod 755 xxx.sh
二、被執行的腳本編碼有問題,這種狀況直接轉碼運維
dos2unix xxx.sh
咱們也可下載一個windows版的dos2unix,轉完碼後再上傳到Linux服務器
編碼