linux中的工作排程

2021-08-03 06:58:54 字數 2525 閱讀 5634

一、linux中工作排程的種類:

1、例行性工作排程:每隔一定時間就要辦的事情,如上班打卡;linux中通過crontab命令,實現例行性工作排程

2、突發性工作排程:僅執行一次就結束的,如打折**;linux中通過at命令,實現突發性工作排程

二、at

at用來處理僅執行一次就結束排程的命令,不過要執行at命令,必須先有atd這個服務的支援。

at的執行方式:我們使用at這個命令產生所要執行的工作,並將這個工作以文字檔的方式寫入/var/spool/at目錄內,該工作便能等待atd這個服務的取用和執行了。

at命令的使用許可權:1、在、/etc/at.allow檔案內的使用者; 2、不在/etc/at.deny檔案內的使用者; 3、root使用者

基本語法:

root@www ~]# at [-mldv] time

[root@www ~]# at -c 工作號碼選項與引數:

-m  :當 at 的工作完成後,即使沒有輸出資訊,亦以 email 通知使用者該工作已完成。

-l  :at -l 相當於 atq,列出目前系統上面的所有該使用者的 at 排程;

-d  :at -d 相當於 atrm ,可以取消乙個在 at 排程中的工作;

-v  :可以使用較明顯的時間格式列出 at 排程中的工作列表;

-c  :可以列出後面接的該項工作的實際命令內容。

time:時間格式,這裡可以定義出『什麼時候要進行 at 這項工作』的時間,格式有:

hh:mm                        ex> 04:00

在今日的 hh:mm 時刻進行,若該時刻已超過,則明天的 hh:mm 進行此工作。

hh:mm yyyy-mm-dd              ex> 04:00 2009-03-17

強制規定在某年某月的某一天的特殊時刻進行該工作!

hh:mm[am|pm] [month] [date]  ex> 04pm march 17

也是一樣,強制在某年某月某日的某時刻進行!

hh:mm[am|pm] + number [minutes|hours|days|weeks]

ex> now + 5 minutes  ex> 04pm + 3 days

就是說,在某個時間點『再加幾個時間後』才進行。

三、crontab

crontab的執行方式:當使用crontab建立工作行程後,該工作就會被記錄到/var/spool/crontab/$username($username 代表執行名的使用者,如:ym使用者執行了crontab命令,那麼這項工作形成就會被寫入/var/spool/crontab/ym檔案中去)。注意:不要直接使用vim訪問該檔案,否則可能由於語法錯誤,導致crontab無法執行。

crontab命令的使用許可權:1、在/etc/crontab.allow檔案中的使用者; 2、不再/etc/crontab.deny檔案中的使用者; 3、root使用者

基本語法:

[root@www ~]# crontab [-u username] [-l|-e|-r]選項與引數:

-u  :只有 root 才能進行這個任務,亦即幫其他使用者建立/移除 crontab 工作排程;

-e  :編輯 crontab 的工作內容

-l  :查閱 crontab 的工作內容

範例一:用 dmtsai 的身份在每天的 12:00 發信給自己

[dmtsai@www ~]$ crontab -e

# 此時會進入 vi 的編輯畫面讓您編輯工作!注意到,每項工作都是一行。

0  12  *  *  * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc

#分 時 日 月 周 |<**********====命令串********************====>|

每項工作的格式都是具有6個字段,這六個欄位的意義分別表示:

代表意義     分鐘     小時     日期     月     周     命令

數字範圍    0-59     0-23    1-31    1-12   0-7   工作命令

輔助字元:

*(星號):代表任何時刻都接受的意思

,(逗號):代表分隔時段的意思。舉例來說,如果要下達的工作是 3:00 與 6:00 時,就會是:0 3,6 * * * command 時間引數還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用!

-(減號):代表一段時間範圍內,舉例來說, 8 點到 12 點之間的每小時的 20 分都進行一項工作:20 8-12 * * * command 仔細看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思!

/n(斜線):那個 n 代表數字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進行一次,則:*/5 * * * * command 很簡單吧!用 * 與 /5 來搭配,也可以寫成 0-59/5 ,相同意思!

練習:每天凌晨3點執行一次/usr/local/nginx/html/test.php 檔案;

0 3 * * * /usr/local/nginx/html/test.php 

linux例行性工作排程

什麼是例行性工作?比如太陽每天從東方公升起,學校的上課鈴總是不厭煩的定時響起,老媽的喊叫聲總在每天的固定時刻叫你起床等。這些都是例行性工作。linux系統也有自己的定時要辦的事情,比如日誌檔案的輪替,whatis資料庫的建立等等。linux例行性工作分一次性的 at 和迴圈執行的 cron 本篇部落...

Linux 例行性工作排程

所謂排程就是將這些工作安排執行的流程 1 linux工作排程的種類 at cron 兩種工作排程方式 1 例行性,每隔一定的週期要辦的事項 2 突發性,一次做完後就不再做的排程 at at是乙個可以處理僅執行一次就結束排程的指令,執行at需要有atd服務的支援 2 centos系統上常見的例行性工作...

Linux例行性工作排程

什麼是例行性工作排程 每個人或多或少都有一些約會或者是工作,有的工作是例行性的,例如每年一次的年會 每個月一次的工作報告 每週一次的週會 每天需要的打卡等等 有的工作則是臨時發生的,例如剛好有高層領導來訪,需要你準備演講器材等等!用在生活上面,例如每年的愛人的生日 每天的起床時間等等 還有突發性的商...