1. 程式人生 > >linux crontab定時任務的使用 避免踩坑

linux crontab定時任務的使用 避免踩坑

一、crontab中呼叫shell指令碼

1.確保yourscriptsname.sh的許可權是755。

   如果不確定,可以在sh指令碼所在資料夾下用ll命令檢視,若顯示如下圖-rw-r--r--表示沒有執行許可權,用sudo chmod 755     yourscriptsname.sh(自己的.sh指令碼檔案的名字)修改未755許可權,再次ll檢視yourscriptsname.sh變為綠色,許可權為-rwxr-xr-x。

原因:沒有755許可權,其他資料夾下使用sh yourscriptsname.sh會提示permisson deny,那麼在crontab下就不能正確執行

2.要確保yourscriptsname.sh中涉及的命令以及檔案都要寫上完整的絕對路徑。減少出現失敗的可能。

3.最好在yourscriptsname.sh的頭部加上你的bash的路徑

which bash可以檢視,以我的為例子:可以寫為#!/bin/bash     (每個人的不一樣,以自己的路徑為準)

二、crontab -e的使用

1.必須使用sudo crontab -e這樣才能最大許可權的呼叫指令碼。直接crontab -e你有的情況下會驚奇的發現寫好的命令並沒有執行。

2.crontab中呼叫的shell指令碼或者python指令碼都要加上絕對路徑

三、在crontab中使用python指令碼

1.檢視python指令碼的編碼格式

利用如下命令檢視檔案格式

:set ff 或 :set fileformat

可以看到如下資訊

fileformat=dos 或 fileformat=unix

利用如下命令修改檔案格式

:set ff=unix 或 :set fileformat=unix

:wq (存檔退出)

參考這位作者的:https://blog.csdn.net/silscorige/article/details/6722244,感謝!

step1:sudo vim test1.py

step2:輸入:號,然後輸入set ff回車,即可看到編碼格式,若linux中顯示為dos要使用set ff=unix更改,然後wq!



四、總之涉及到shell指令碼或者crontab的命令,最好都加上整的絕對路徑,以免出現不必要的麻煩。尤其是新手一個忽視,可能要花很久找bug。比如我這個菜鳥踩坑專家哈哈哈哈!

由於時間和水平有限,有紕漏之處敬請指正,屬於非科班,專業術語不太會,可能顯得很業餘。