Linux 定时执行shell 脚本
2019年第 85 篇文章,總第 109 篇文章
本文大約2000字,閱讀大約需要6分鐘
crontab 可以在指定的時間執行一個shell腳本以及執行一系列 Linux 命令。
定時執行shell 腳本
簡單給出執行 shell 腳本的步驟。
首先是編寫一個測試腳本--test.sh
修改腳本的權限,確保腳本有執行的權限
設置 crontab 定時任務
保存退出,也就是 :wq
如果有錯,linux 會在執行的時候發送一份郵件給你
注意:
crontab 是運行在系統默認環境里,如果運行的腳本是執行 python 代碼,即腳本的內容可能是:
python test.py這里的 python 會是系統默認的 python 版本,而如果你是運行在 conda 環境里,那么這里就需要采用當前環境里 python 版本的執行文件的絕對路徑,即先用以下命令查找當前 python 版本的執行文件位置:
$ which python # 假設輸出的文件位置為: /root/anaconda3/py3/bin/python這里輸出的路徑,直接替換腳本里的 python:
/root/anaconda3/py3/bin/python test.py這樣才能保證運行不出錯,否則可能因為版本問題出錯;
crontab命令詳解
常用命令
crontab –e //修改 crontab 文件,如果文件不存在會自動創建。 crontab –l //顯示 crontab 文件。 crontab -r //刪除 crontab 文件。 crontab -ir //刪除 crontab 文件前提醒用戶。service crond status //查看crontab服務狀態 service crond start //啟動服務 service crond stop //關閉服務 service crond restart //重啟服務 service crond reload //重新載入配置所以如果需要取消某個定時任務,就是可以刪除在配置文件中的對應命令,即 crontab -e 打開文件,然后刪除對應哪行的命令即可
基本格式
* * * * * command 分 時 日 月 周 命令第1列表示分鐘 00~59 每分鐘用*或者 */1表示
第2列表示小時 00~23(0表示0點)
第3列表示日期 01~31
第4列表示月份 01~12
第5列標識號星期 0~6(0表示星期天)
第6列要運行的命令
此外每一列除了數字,還可以有這些符號,其含義如下所示:
* 代表任何時間,比如第一個 * 就代表一小時中的每分鐘都執行 , 代表不連續的時間,比如 0 8,12,16 * * * 代表每天8,12,16點0分執行 - 代表連續的時間范圍,比如0 5 * * 1-6 代表在周一到周六凌晨5點0分執行 */n 代表每個多久執行一次,比如*/10 * * * *代表每隔10分鐘執行一次示例
1、在 凌晨00:10運行
10 0 * * * sh test.sh2、每個工作日23:59都進行備份作業。
59 23 * * 1,2,3,4,5 sh test.sh 或者 59 23 * * 1-5 sh test.sh3、每分鐘運行一次命令
*/1 * * * * sh test.sh4、每個月的1號 14:10 運行
10 14 1 * * sh test.sh5、每10分鐘定時請求一個地址
0 */10 * * * /usr/bin/curl http://www.aaa.com/index.php注意,一般最好不要同時采用幾號和每周幾,可能會出現混淆;
正確、錯誤日志的輸出是否寫入到文件方法
1.不輸出任何內容(建議使用方法一)
*/1 * * * * /root/XXXX.sh >/dev/null 2>&1 或 */1 * * * * /root/XXXX.sh &>/dev/null //&表示任何內容2.將正確和錯誤日志都輸出到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&13.只輸出正確日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log 或 */1 * * * * /root/XXXX.sh 1> /tmp/load.log //1可以省略4.只輸出錯誤日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh 2> /tmp/load.log部分解釋:
/dev/null 代表空設備文件 > 代表重定向到哪里 1 表示stdout標準輸出,系統默認值是1,所以">/dev/null"等同于"1>/dev/null" 2 表示stderr標準錯誤 & 表示等同于的意思,2>&1,表示2的輸出重定向等同于1參考文章:
Linux 定時執行shell腳本命令之crontab:https://www.cnblogs.com/wenzheshen/p/8432588.html
linux定時執行sh文件:https://blog.csdn.net/IT_xiaocao/article/details/78206364
歡迎關注我的微信公眾號--算法猿的成長,或者掃描下方的二維碼,大家一起交流,學習和進步!
如果覺得不錯,在看、轉發就是對小編的一個支持!
總結
以上是生活随笔為你收集整理的Linux 定时执行shell 脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑html动态桌面壁纸制作,动态桌面软
- 下一篇: 操作系统基础:计算机作业管理知识笔记