更新時間:2020-12-24 17:33:14 來源:動力節點 瀏覽1258次
計劃任務是系統的常見功能,利用任務計劃功能,可以將任何腳本、程序或文檔安排在某個最方便的時間運行。任務計劃在每次系統啟動的時候啟動并在后臺運行。在Linux系統中,當我們需要在服務器上定時執行一些重復性的事件時使用的,可以通過Linux計劃任務程序來運行準備好的腳本、批處理文件夾、程序或命令,在某個特定的時間運行。
計劃任務在Linux 中一般使用 Crontab,通過 crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 Shell 腳本。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另外, 由于使用者自己也可以設置計劃任務,所以, Linux 系統也提供了使用者控制計劃任務的命令:crontab命令。因此,Linux計劃任務整體還是圍繞Crontab展開的。
1、crontab命令選項
<code># crontab -u <-l, -r, -e></code>
-u指定一個用戶
-l列出某個用戶的任務計劃
-r刪除某個用戶的任務
-e編輯某個用戶的任務
2、cron文件寫法
可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件。Minute Hour Day Month Week command
分鐘 小時 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
Minute 每個小時的第幾分鐘執行該任務
Hour 每天的第幾個小時執行該任務
Day 每月的第幾天執行該任務
Month 每年的第幾個月執行該任務
DayOfWeek 每周的第幾天執行該任務,0表示周日
Command 指定要執行的程序 、腳本或命令
3、特殊符號的含義
星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。
4、常用命令
1)cron配置文件路徑
# vi /etc/crontab
2)重啟cron
# /etc/init.d/crond restart
Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart}
3)查看cron服務情況
# service crond status //crond服務狀態
# service crond stop //crond服務關閉
# service crond start //crond服務打開
4)查看cron日志
# cat /var/log/cron
5)別忘了將腳本改成可執行
# chmod +x filename
5、常用示例
5 * * * * ls 指定每小時的第5分鐘執行一次ls命令
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鐘執行ls命令[注:“-”用來連接連續的時段] */15 * * * * ls 每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令 ]
每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:
run-parts參數表示,執行后面目錄中的所有可執行文件
第10、20、30分鐘輸出到/tmp/cron1.txt:
10,20,30 * * * * echo "第10、20、30分鐘輸出一次" >> /tmp/cron1.txt
以用戶lzw.me的身份每兩小時就運行某個程序:
0 */2 * * * lzw.me /usr/bin/somecommand >> /dev/null 2>&1
我們不難看出Linux計劃任務的核心還是Linux crontab 命令,通過Linux crontab 命令來實現各種Linux計劃任務。Linux計劃任務和Windows計劃任務還是有一定的差異的,Linux系統更加專業化,對使用者的要求更高。想要徹底掌握Linux系統,對于初學者來說任重而道遠,不過也沒有必要擔心,本站的Linux教程對Linux進行了全方位的知識總結和講解,能夠幫助我們更快地掌握Linux。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習