Linux任務計劃

Linux任務計劃,周期性任務執行

        未來的某時間點執行一次某任務:at, batch

         周期性運行某任務:crontab

                 執行結果:

             ~]# netstat -tnlp

             ~]# ss -tnl

     本地電子郵件服務:

             smtp: simple mail transmission protocol

             pop3: Post Office Procotol

             imap4: Internet Mail Access Procotol

             mail命令:

             mailx – send and receive Internet mail

             MUA:Mail User Agent,用戶收發郵件的工具程序;

             mailx [-s 'SUBJCT'] username[@hostname]

     郵件正文的生成: 

            (1) 交互式輸入:單獨成行可用標識正文結束;Ctrl+d提交亦可;

            (2)通過輸入重定向;

            (3)通過管道:

        at 命令:

             at [OPTION]….TIME

             TIME:

              HH:MM [YYYY-mm-dd]

              noon,  midnight, teatime

              tomorrow 

               now+# 

              UNIT:minutes, hours,days,or weeks

               at的作業隊列,用單個字母表示;默認都使用a隊列;

        常用選項:

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

           -f: /PATH/FROM/SOMEFILE:從指定文件中讀取作業任務,而不用再交互式輸入;

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

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

           -q: QUEUE:指明隊列;

          注意:作業執行的結果是以郵件發送提交作業的用戶

               batch命令:

               batch命令會讓系統自行選擇在系統資源交空閑的時間去執行指定的任務;

          周期性任務計劃:cron

             服務程序:

             cronie:主程序包,提供了crond守護進程及相關輔助工具;

             確保crond 守護進程(daemon)處于運行狀態:

         Centos 7 :

              systemctl satus crond.service

              Active:active (running)….

        Centos 6 :

             service crond status

              …is running

       向crond提交作業的方式不同于at,它需要使用專用的配置文件,次文件有固定格式,不建議使使用文本編輯器直直接編輯此文件;要使用crontab命令;

       cron任務分為兩類:

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

            用cron任務:/etc/cron/tab

            SHELL=/bin/bash

            PATH=/sbin:/bin:/usr/sbin:/usr/bin

            MAILTO=root

            HOME=/

            # For details see man 4 crontabs

            # Example of job definition:

            # .—————- minute (0 – 59)

            # |  .————- hour (0 – 23)

            # |  |  .———- day of month (1 – 31)

            # |  |  |  .——- month (1 – 12) OR jan,feb,mar,apr …

            # |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

            # |  |  |  |  |

            # *  *  *  *  * user-name command to be executed

    注意:(1)每一行定義一個周期性任務;共七個字段

              *  *  *  *  *:定義周期性時間

              user -name:運行任務的用戶身份

         (2)此時的環境變量不同于用戶登錄后獲得的環境,因此,建議命令使用絕路徑,或者自定義PATH環境變量;

         (3)執行結合郵件發送給AMAILTO指定的用戶;


    用戶cron的配置格式:/var/spool/cron/USERNAME

          SHELL=/bin/bash

          PATH=/sbin:/bin:/usr/sbin:/usr/bin

          MAILTO=root

          HOME=/

          # For details see man 4 crontabs

          # Example of job definition:

          # .—————- minute (0 – 59)

          # |  .————- hour (0 – 23)

          # |  |  .———- day of month (1 – 31)

          # |  |  |  .——- month (1 – 12) OR jan,feb,mar,apr

          # |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

          # |  |  |  |  |

          # *  *  *  *   command to be executed

   注意:

      (1)每行第那樣一個cron任務,共6個字段;

      (2)  此時的環境變量不同于用戶登錄后獲得的環境,因此,建議命令使用絕路徑,或者自定義PATH環境變量;

      (3)郵件發送給當前用戶;

  時間表示法:

      (1)特定值:

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

           注意:day of week和day of month 一般不同時使用:

      (2)*

          給定時間點上有效取值范圍內的所有制;表 “每…"

      (3)離散取值: ,

          在時間點上使用逗號分隔的多個值;

          #,#,#,

      (4)連續取值: –

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

          #-#

      (5)在指定是幾點上,定義步長;

          /#: #即步長:

          */2

 注意:1、指定的時間點不能被步長整除時,其意義將不符存在;

       2、最小時間單位為”分鐘“,想完成”秒“級任務,得需要額外借助于其它

         機制;定義成每分鐘任務;而在利用腳本實現在每分鐘之內,循環執行多次;

      示例:

     (1)3****:每小時執行一次,每小時第3分鐘;

     (2)34**5:每周執行一次:每周5的4點3分;

     (3)5 6 7 * *:  每月執行一次; 第  月的7號的6點5分;

     (4)7 8 9 10 *:每年執行一次, 每年的10月9號8點7分;

     (5)9 8 * * 3,7 :每周三和周日;

     (6)0 8,20 * *3,7:

     (7)0 9-18 * * 1-5:

     (8)*/5 * * * *: 每五分鐘執行一次某任務;

     (9)*/7

                                  

 crontab命令:

      crontab [-u user] file

      crontab [-u user] [-l | -r | -e] [-i] [-s]

      -e: 編輯任務;

      -l: 列出所有任務

      -r: 移除所有任務:即刪除/var/spool/cron/RSERNAME文件:

      -i: 在使用-r 選項移除所有任務是提示用戶確認;

      -u: user: root用戶可為指定用戶管理cron任務

注意:運行結果一郵件通知給當前用戶;如果拒絕解釋郵件:

    (1):COMMAND>/dev/null

    (2):COMMAND &/dev/null

注意:定義COMMAND時,如果命令需要用到%,需要對其轉義;但放置于單引號中的%不用轉義亦可;

思考:某任務在指定的時間因關機未能執行,下次開機會不會自動執行?

      不會!

 如果期望某時間因故未能按時執行,下次開機后無論是否到了相應時間點都要執行一次,可使用anacron實現

原創文章,作者:shadow,如若轉載,請注明出處:http://www.www58058.com/65457

(0)
shadowshadow
上一篇 2016-12-31 21:11
下一篇 2016-12-31 21:36

相關推薦

  • CentOS上配置https服務

    在CentOS6.9(http2.2)配置https   創建前準備:       安裝opensssl包  和 http2.2 1、在主機(192.168.109.100)創建私有CA   (1)獲取私鑰       …

    2017-06-04
  • shell腳本之變量、運算、條件測試。

    概述 程序:指令+數據 程序編程風格: 過程式:以指令為中心,數據服務于指令 對象式:以數據為中心,指令服務于數據 shell程序:提供了編程能力,解釋執行 計算機:運行二進制指令; 編程語言: 低級:             匯編 高級:…

    Linux干貨 2016-08-15
  • Linux內核編譯過程詳解

    前言 Linux內核是Linux操作系統的核心,也是整個Linux功能體現的核心,就如同發動機在汽車中的重要性。內核主要功能包括進程管理、內存管理、文件管理、設備管理、網絡管理等。Linux內核是單內核設計,但卻采用了微內核的模塊化設計,支持內核線程以及動態裝載內核模塊的能力。 Linux作為一個自由軟件,在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂…

    Linux干貨 2015-04-01
  • linux 3.26 第一課

    setup app

    2018-03-26
  • 第一周作業

    一、計算機的基本組成和功能   cpu包括運算器、控制器、寄存器、緩存       運算器:計算功能,對數據進行加工處理的的部件;       控制器:負責從存儲器取出指令,控制cpu計算器之間的運行結果和狀態;       寄存器:暫存指令和數據的地方,存儲…

    Linux干貨 2016-12-04
  • 馬哥教育網絡班22期+第一周課程練習

    1、描述計算機的組成及其功能。 計算機由硬件系統、操作系統和應用軟件所組成,沒有安裝任何軟件的計算機稱為裸機。 1.1、硬件系統由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成,遵循馮、諾依曼原理。 控制器:讀取分析指令,向其它部分發出控制信號,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。  運算器:對數據進行各種運算,例如…

    Linux干貨 2016-08-22

評論列表(1條)

  • luoweiro
    luoweiro 2017-02-23 08:06

    給你出一題,每天晚上的02:10:10秒執行一個任務如何寫?

欧美性久久久久