1. 程式人生 > >Linux系統中的計劃任務

Linux系統中的計劃任務

str 選項 連續 啟動 cron ont web 編寫 style

  在系統的工作管理中,我們經常會有需要去告訴電腦某些特定的時間執行一些操作,比如定時提醒工作人員需要做什麽事情,或者在每天淩晨進行文件備份等等。這就需要某些命令來達成計劃任務。

  計劃任務可以大體上分成兩類: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

常用選項:

-llist,列出指定用戶的計劃任務列表

-eedit,編輯指定用戶的計劃任務列表

-uuser,指定的用戶名,如果不指定,則表示當前用戶

-rremove,刪除指定用戶的計劃任務列表

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. 編寫計劃任務

計劃任務的規則語法格式,以行為單位,一行為一個計劃:

分 時 日 月 周 需要執行的命令

執行的命令建議寫成絕對路徑的格式!

例如:如果想要每天的00分執行reboot指令,則可以寫成

0 0 * * * reboot

取值範圍(常識):

分:0~59

時:0~23

日:1~31

月:1~12

周:0~707表示星期天

四個符號:

*:表示取值範圍中的每一個數字

-:做連續區間表達式的,要想表示1~7,則可以寫成:1-7

/:表示每多少個,例如:想每10分鐘一次,則可以在分的位置寫:*/10

,:表示多個取值,比如想在1點,26點執行,則可以在時的位置寫:1,2,6

技術分享圖片

Linux系統中的計劃任務