在伺服器中添加定期執行的任務,在很多情況下是非常必要的。比如,每天清理一次/tmp目錄下的文件;沒幾分鐘檢查某一守護進程是否正常等等。這樣計劃任務就顯得尤為方便。 ...
我們可以通過一些設置。來讓電腦定時提醒我們該做什麼事了。或者我們提前設置好,告訴電腦你幾點做什麼幾點做什麼,這種我們就叫它定時任務。而遇到一些需要執行的事情或任務。我們也可以通過命令來告訴電腦一會臨時把這個工作給做一下.
在我們LINUX中,我們可以通過crontab和at這兩個東西來實現這些功能的
計劃任務的作用:是做一些周期性的任務,在生產中的主要用來定期備份數據
計劃任務的安排方式分兩種:
一種是定時性的,也就是例行。就是每隔一定的周期就要重覆來做這個事情.
一種是突發性的,就是這次做完了這個事,就沒有下一次了,臨時決定,只執行一次的任務.
at和crontab這兩個命令:
at:它是一個可以處理僅執行一次就結束的指令
crontab:它是會把你指定的工作或任務,比如:腳本等,按照你設定的周期一直迴圈執行下去。
一:at
語法: # at 時間
1.下載at 軟體 yum -y install at
2. 啟動atd 服務 systemctl start std
3.設置任務
at 10:00 #如果是上午時間,後面加上am,比如9:20am
at> touch /tmp/test1 #輸入你要執行的命令
at> <EOT> #按ctrl+d保存
job 1 at Fri Mar 1 10:00:00 2019
4.查看計劃任務
at -l #查看計劃任務
Fri Mar 1 10:00:00 2019 a root
atq #查看計劃任務
Fri Mar 1 10:00:00 2019 a root
5.刪除計劃任務 atm
atrm 1 #刪除計劃任務加上編號
at計劃任務特殊寫法
at 20:00 2018-10-1 在某天
at now +10min 在 10分鐘後執行
at 17:00 tomorrow 明天下午5點執行
at 6:00 pm +3 days 在3天以後的下午6點執行
二:Crontab 計劃任務的使用
語法:#crontab -u -e
常用選項:
-l:list,列出指定用戶的計劃任務列表
-e:edit,編輯指定用戶的計劃任務列表
-u:user,指定的用戶名,如果不指定,則表示當前用戶
-r:remove,刪除指定用戶的計劃任務列表
crontab -e 編輯時的語法:
0或者7都是表示星期天,另外在這個時間的表達式中,還有些特殊符號,意思如下:
四個符號:
*:表示取值範圍中的每一個數字
-:做連續區間表達式的,要想表示1~7,則可以寫成:1-7
/:表示每多少個,例如:想每10分鐘一次,則可以在分的位置寫:*/10
,:表示多個取值,比如想在1點,2點6點執行,則可以在時的位置寫:1,2,6
例:
每天凌晨2點1分:1 2 * * *
每月1、10、22日的4 : 45:45 4 1,10,22 * *
每月1到10日的4 : 45:45 4 1-10 * *
每隔兩天的上午8點到11點的第3和第15分鐘:3,15 8-11 */2 * *
註:在計劃任務中,預設的最小單位就是分,不能再小了;所有用戶的計劃任務,都會在/var/spool/cron/下產生對應的文件.