CentOS計劃任務詳解

一、計劃任務應用場景:

       需要每天對服務器上的數據進行備份,但是白天服務器的訪問量較大,服務器承受著較大的壓力,備份任務只能在夜晚服務器較空閑時才能進行?;蛘咝枰R時在某時間點執行一個任務等,都需要用到計劃任務的功能。

二、計劃任務分類:     

       一次性計劃任務:at

       周期性計劃任務:cron

三、一次性計劃任務:

at [options]… Time 

       常用選項:

              -l:查看作業隊列,相當于atq

              -d #:刪除指定的作業,相當于atrm

              -f /path/from/somefile:從指定文件中讀取作業,而不再使用驕傲胡輸入

              -c #:查看指定作業的具體內容

              -q queue:指明隊列

       Time可以使用以下格式表示:

              HH:MM[YYYY-mm-dd]

              noon,midnight,teatime

              tomorrow

              now +#:

                     Unit:Minutes,Hours,Days,Weeks

                     at now +1min:表示1分鐘之后執行任務

                     at 04pm +3day:表示3天后的下午4點

例:在10:57在系統廣播“hello”

注:要執行的的任務輸入完成之后,使用ctrl + d鍵確認完成此計劃。

blob.png

at任務的任務隊列:

       at任務存放在/var/spool/at目錄中

       默認為a隊列,任務名以a開頭。

blob.png

at任務的執行方式:

       at任務的執行依賴于atd服務,要使at任務能準時執行,需要保證atq服務開啟,且最好設置為開機自啟。

       service atd start

       chkocnfig atd on

       作業的執行結果是以郵件的形式發送給提交作業的用戶,在執行at任務應盡量將輸出重定向,避免產生過多的垃圾郵件。

控制普通用戶能否創建at任務

       /etc/at.deny  #黑名單

              黑名單中的用戶不允許創建at任務

       /etc/at.allow       #白名單,默認情況下,此文件未在系統中創建,需手動添加

              只允許在白名單中的用戶執行at任務

       若不想讓所有普通用戶創建at任務

              1、刪掉at.deny文件

              2、創建at.allow文件,文件內容為空

白名單優先級高于黑名單,白名單和黑名單擁有同一個用戶,則以白名單為準

四、周期性計劃任務

cron的服務程序為crond

       主程序包為cronie,提供crond守護進程及相關的輔助工具。

       crontab計劃任務要能準時運行,需要確保crond守護進程(daemon)處于運行狀態,且應設置為開機啟動。

       在CentOS6和7啟動任務時略有不同。

                     CentOS7

                            systemctl start crond

                            systemctl enable crond

                     CentOS6

                            service  crond  start

                            chkconfig crond on

cron任務計劃分類:

       系統cron任務:主要用于實現系統自身的維護。

              編輯/etc/crontab完成任務定義

       用戶cron任務:完成用戶自定義的任務

              使用crontab命令定義任務

etc/crontab文件的配置格式:

blob.png

 分 時 日 月 周   Username  Command to be excuted"命令的絕對路徑"

例:每天晚上9點10分運行echo命令

10 21 * * * centos /bin/echo "Howdy!"

注意:

       (1)、每一行定義一個周期性任務。

       (2)、此處的PATH環境變量不同于用戶登陸后的環境變量

       (3)、執行結果以郵件的形式發送給指定用戶,為避免產生過多的垃圾郵件,命令產生的輸出應進行重定向處理。

 

時間表示法:

       (1)、特定值

              給定時間點有效取值范圍內的值

       (2)、*

              給定時間點上有效取值范圍內的所有值。表示”每…“

       (3)指定時間點上的離散取值

              在給定時間點上使用逗號分隔的多個值即可。

       (4)連續取值

              在時間點上使用“-”連接開頭和結束

       (5)在指定時間點上,定義步長。

              /#: #即步長

注意:

       (1)指定的時間點不能被步長整除時,其意義將不復存在

       (2)最小時間單位為分鐘,想完成秒級任務,需借助于其他機制??啥x成每分鐘任務:再利用腳本實現每分鐘之內,循環執行多次。

       (3)*  *  1,10,20  *  0,6

              這樣的事件格式標識每月1號、10號、20號,以及每周六、每周日執行任務

例:

       (1) 3 * * * *:每小時第三分鐘

       (2) 3 4 * * 5:每周5的4點的第3分鐘

       (3) 5 6 7 * *:每月7日6點5分。

       (4) 7 8 9 10 *:每年第10月9號8點7分

       (5) 9 8,20 * * 3,7:每周三和周日的8點9分和20點9分

       (6) 1 9-18 * * 1-5;周一到周五的9點到18點每小時執行。

       (7) */5 * * * *:每5分鐘執行一次

crontab命令:

       crontab [options]

              -u user

              -l (list)

              -e (edit)

              -r:移除所有任務

       crontab編輯時不指定用戶,為編輯當前登錄用戶的計劃任務;root可以編輯指定用戶的計劃任務。

       crontab -u gentoo -e       #編輯指定用戶的計劃任務

       crontab -u gentoo -l        #查看指定用戶的計劃任務

例:每周六凌晨0點5分備份/etc目錄下的所有配置文件至/back目錄下,命名為"etcbak-年月日-時.tar.xz“

5 0 * * 6 root /bin/tar -Jcf /etc/*.conf /backup/etcbak-`date +\%F-\%H`.tar.xz

注意:在crontab中,%具有特殊意義,若要在命令中使用%,需要轉義

管理普通用戶的計劃任務權限

       /etc/cron.deny    #黑名單中的用戶不能配置計劃任務。

       /etc/cron.allow     #只有白名單中的用戶可以配置計劃任務。若白名單中未指定用戶,則所有普通用戶都不可配置計劃任務。

白名單優先級高于黑名單

五、實戰演練

1、每周2, 4, 7備份/var/log/messages文件至/logs目錄中,文件名形如“messages-yyyymmdd”

10 0  * * 0,2,4 root /bin/cp /log/message /logs/messages-`date %F`

2、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的信息追加至/tmp/meminfo.txt文件中

0 2 * * * root /bin/cat /proc/meminfo | /bin/grep '^[S|M].*' >> /tmp/meminfo.txt

注:在使用命令時,應通過which獲取命令的絕對路徑,再使用絕對路徑。

原創文章,作者:M20-1鐘明波,如若轉載,請注明出處:http://www.www58058.com/44893

(1)
M20-1鐘明波M20-1鐘明波
上一篇 2016-09-09
下一篇 2016-09-09

相關推薦

  • 系統服務之LVS 集群

    Linux集群(Cluster) 一.概論 1.定義     Cluster:計算機集合;     linux集群,多臺Linux主機為解決某個特定問題組合起來形成的單個系統;     由于現代化業務上線的需求, 單服務器已經不能…

    Linux干貨 2016-10-28
  • 為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿??

    一:答疑解惑:    這是因為該文件所在分區的inode號被用盡,雖然分區的剩余容量還有很多。 二:基本原理:   inode為何物block又為何物?以及,inode都有哪些特征?   ①我們知道,在linux文件系統中,文件名只是計算機用來給人看,而計算機本身只識別文件所對應的數字或編號,而這個編號或數字…

    2017-07-22
  • N26-第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     ~]#cp -r /etc/skel /home/tuser1     ~]#chmod -R go=-rwx /home/tuser1…

    Linux干貨 2017-01-05
  • M20-1 8月3號作業

    1、三種權限rwx對文件和目錄的不同意義 2、umask和acl mask 的區別和聯系 3、三種特殊權限的應用場景和作用 4、設置user1,使之新建文件權限為rw——- 5、設置/testdir/f1的權限,使user1用戶不可以讀寫執行,g1組可以讀寫 /testdir/dir的權限,使新建文件自動具有acl權限:user1:r…

    Linux干貨 2016-08-05
  • 26期全程班-第二周博客作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     cp  復制命         ex:cp -a /etc/initab /var/log/message /tmp/   …

    Linux干貨 2017-01-10
  • 馬哥linux 0728作業

    1,軟鏈接和硬鏈接的區別 硬鏈接有以下特性 1)文件有相同的 inode 及 data block; 2)只能對已存在的文件進行創建; 3)不能交叉文件系統進行硬鏈接的創建; 4)不能對目錄進行創建,只可對文件創建; 5)刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。 而軟鏈接有一下特性 1)軟鏈接有自己的文件屬性及權限等; 2)可對不存在的文…

    Linux干貨 2016-08-04

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-10 14:15

    文章思路清晰,層次分明,有理論也有實踐,很值得學習的一篇博客。

欧美性久久久久