Linux系統中的計劃任務
在系統的工作管理中,我們經常會有需要去告訴電腦某些特定的時間執行一些操作,比如定時提醒工作人員需要做什麽事情,或者在每天淩晨進行文件備份等等。這就需要某些命令來達成計劃任務。
計劃任務可以大體上分成兩類:1、定時性的,每隔一定的周期就做同樣的事情;
2、突發性的,只執行這一次就不再執行。在Linux系統中分別用crontab和at 兩個命令來進行這兩個操作。
at一次性計劃任務使用
at語法格式:at 時間
1. 下載at程序
[[email protected] ~]# yum install at -y
2. 啟動atd服務
[[email protected] ~]# systemctl restart atd [[email protected] ~]# ps aux | grep atd root 1166 0.0 0.1 25904 944 ? Ss 17:52 0:00 /usr/sbin/at -f root 1168 0.0 0.1 112704 956 pts/0 S+ 17:52 0:00 grep --color=auto atd
3. 設置at計劃任務
[[email protected] ~]# at 10:00 #如果是上午時間,後面加上am,比如9:20am at> touch /tmp/test1 #輸入你要執行的命令 at> <EOT> #按ctrl+d保存 job 1 at Fri Mar 1 10:00:00 2019 [[email protected] ~]# at -l #查看計劃任務 1 Fri Mar 1 10:00:00 2019 a root [[email protected]~]# atq #查看計劃任務 1 Fri Mar 1 10:00:00 2019 a root
4. 刪除計劃任務atrm
[[email protected] ~]# at -l #第一步查看計劃任務,獲取前面編號 1 Fri Mar 1 10:00:00 2019 a root [[email protected] ~]# atrm 1 #刪除計劃任務加上編號 [[email protected] ~]# at -l #再次查看計劃任務發現已經刪除
5. at計劃任務的特殊寫法
[[email protected] ~]# at 20:00 2018-10-1 在某天 [[email protected] ~]# at now +10min 在 10分鐘後執行 [[email protected] ~]# at 17:00 tomorrow 明天下午5點執行 [[email protected] ~]# at 6:00 pm +3 days 在3天以後的下午6點執行
crontab定時任務的使用
語法:#crontab -u -e
常用選項:
-l:list,列出指定用戶的計劃任務列表
-e:edit,編輯指定用戶的計劃任務列表
-u:user,指定的用戶名,如果不指定,則表示當前用戶
-r:remove,刪除指定用戶的計劃任務列表
1. 查看進程是否啟動
[[email protected] ~]# ps aux | grep crond root 621 0.0 0.3 126284 1600 ? Ss 17:46 0:00 /usr/sbin/crond -n root 1194 0.0 0.1 112704 956 pts/0 S+ 18:05 0:00 grep --color=auto crond
2. 查看計劃任務
[[email protected] ~]# crontab -l no crontab for root
3. 編寫計劃任務
計劃任務的規則語法格式,以行為單位,一行為一個計劃:
分 時 日 月 周 需要執行的命令
執行的命令建議寫成絕對路徑的格式!
例如:如果想要每天的0點0分執行reboot指令,則可以寫成
0 0 * * * reboot
取值範圍(常識):
分:0~59
時:0~23
日:1~31
月:1~12
周:0~7,0和7表示星期天
四個符號:
*:表示取值範圍中的每一個數字
-:做連續區間表達式的,要想表示1~7,則可以寫成:1-7
/:表示每多少個,例如:想每10分鐘一次,則可以在分的位置寫:*/10
,:表示多個取值,比如想在1點,2點6點執行,則可以在時的位置寫:1,2,6
Linux系統中的計劃任務