計劃任務管理

    Linux系統計劃任務有兩種:A、一次性任務;B、定時循環任務。

    一次性任務:at命令。at的安裝包名字就是at,可以使用命令"yum install at"進行安裝.安裝完成后,啟用atd服務就可以運行at命令了.運行格式為:at [option] TIME

    OPTION:

      -V 顯示版本信息:
      -l:
列出指定隊列中等待運行的作業;相當于atq
      -d:
刪除指定的作業;相當于atrm
      -c:
查看具體作業任務
      -f /path/from/somefile:從指定的文件中讀取任務(要執行的命令)
      -m:當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出
       注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶

    TIME:定義出什么時候進行 at 這項任務的時間
      HH:MM [YYYY-mm-dd]
      noon, midnight, teatime
4pmtomorrow
      now+#{minutes,hours,days, OR weeks}

      HH:MM 02:00
    在今日的 HH:MM 進行,若該時刻已過,則明天此時執行任務
       HH:MM YYYY-MM-DD 04:00 2016-09-20
    規定在某年某月的某一天的特殊時刻進行該項任務
      HH:MM[am|pm] [Month] [Date]
       04pm March 17
       17:20 tomorrow
    HH:MM[am|pm] + number [minutes|hours|days|weeks]
    在某個時間點再加幾個時間后才進行該項任務
       now + 5 minutes
       04pm + 3 days

    注意:選項-t也可以指定時間:at -t TIME。其格式為[[CC]YY]MMDDhhmm。

    at隊列存放在/var/spool/at目錄中.創建一個計劃任務,2分鐘后發一個廣播:

blob.png

    at命令可以通過修改配置文件來指定用戶有權限或者沒有權限執行。配置文件為/etc/at.deny和/etc/at.allow。其中,at.allow中的用戶被允許執行at命令,at.deny文件中的用戶沒有權限執行at命令。兩個文件如果都不存在,則只有管理員才能執行at命令。如果兩個文件都有,at.allow的優先級高。 

    

     定時循環任務:crontab命令,運行格式為:crontab [-u user] [-l | -r | -e]

      -l:列出當前的計劃任務列表

      -r:刪除當前計劃任務

      -e:創建或者編輯計劃任務

    使用命令"crontab -e"編輯計劃任務,編輯的格式為:

blob.png

    總共7個字段:分、小時、天、月、星期、用戶、命令。例如要在每個月的第一天執行一個計劃任務,可以使用"crontab -e"編輯如下字段:"* * 1 * *  reboot"。然后保存。其中,"*"代表任何時刻(天,小時,分鐘,月),也可以指定具體的時間,連續的時間用"-"連接(1-10),離散的數用","隔開(1,4,10),也可以使用"/#"表示每#(分鐘,小時,月,天)執行一次。時間也可以使用特殊的形式:

    @reboot Run once after reboot.
    @yearly 0 0 1 1 *
    @annually 0 0 1 1 *
    @monthly 0 0 1 * *
    @weekly 0 0 * * 0
    @daily 0 0 * * *
    @hourly 0 * * * *

    編輯完成后就可以使用命令"crontab -l"命令查看:

blob.png

    該命令是讓每月的第一天重啟系統。當用戶使用 crontab 創建工作后,該項工作會被到/var/spool/cron/里面,而且是以賬號最為判別的,crontab執行的每一項工作都會被記錄到 

/var/log/cron 這個日志文件中。

blob.png

     /etc/crontab這個文件是系統默認會定時執行的系統任務,crond服務會每隔一分鐘讀取/etc/crontab與/varspool/cron里面的內容。文件內容如下:

blob.png

          SHELL=/bin/bash:使用的shell,

         PATH=……:定義路徑到變量。

         MAILTO=root:若有額外STDOUT,以 email 將數據發送給誰,可以改成你的email地址,以便接收任務的執行信息。

其中比crontab -e 命令多了一項,便是用戶名稱了,因為用戶執行命令會以用戶身份生成配置文件,而這個文件中若是填入任務的話,系統就需要指定用戶的身份了。

并且其中還支持以目錄來規劃任務,可以將可執行文件放在一個目錄中,然后再命令處填寫 run-parts(有空格)然后接上目錄,即可借助run-parts這個腳本的輔助,來規劃目錄執行了。

其中所有的輸出會以email形式,發送預設的賬號,所以不必要的輸出可以重定向給/dev/null 避免垃圾郵件。

其中日、月、周不可同時存在,若是同時存在,系統默認執行第一個讀取到的時間做循環。

  crontab的任務都是定時循環執行,若是那個時刻處于關機狀態,那么任務就無法執行了,為了彌補這個問題,就有了anacron。其能夠將為能運行的crontab工作在開機之后執行。

aracron也是基于crontab來運行的,因此aracron運行的時間通常有兩個,一個是系統開機期間運行,一個是寫入crontab 的調度之中,這樣才能夠在特定的時間分析系統中未運行的crontab 工作。

blob.png

           RANDOM_DELAY=45表示啟動后延時時間;

           START_HOURS_RANGE=3-22表示執行的時間段

           下面的字段分別表示執行的次數、執行的延時、作業標識符、命令

           和at命令相似,它也有兩個配置文件cron.deny和cron.allow,作用一樣。

原創文章,作者:王更生,如若轉載,請注明出處:http://www.www58058.com/61038

(0)
王更生王更生
上一篇 2016-11-27
下一篇 2016-11-27

相關推薦

  • 磁盤管理—MBR分區與GPT分區總結

    描述: 1,什么是磁盤分區   磁盤分區是使用分區編輯器(partition editor)在磁盤上劃分幾個邏輯部分,盤片一旦劃分成數個分區(Partition),不同類的目錄與文件可以存儲進不同的分區。 2,硬盤結構及參數   3D參數(Disk Geometry):CHS(Cylinder/Head/Sector)  &nb…

    Linux干貨 2016-08-29
  • 計算機基礎知識(第一天)

    一、計算機的硬件組成         馮諾依曼體系結構:             CPU、存儲器、輸入設備、輸出設備       &nbsp…

    Linux干貨 2016-07-26
  • 單引號、雙引號和反引號使用方法

        首先向馬哥和馬哥團隊敬個禮,謝謝你們帶我進入Linux的世界,剛開始接觸linux時,經??吹絾我?、雙引號和反引號特殊符號,經常搞混淆和誤用,應該用雙引號,有時用到單引號。經過幾天的混亂引用,總算搞明白了一些,簡單總一下三者的使用和區別。  單引號 ‘’     單引號里的內容全部以普通字符的含義進…

    Linux干貨 2015-07-29
  • 關于shell腳本基礎編程第五篇

                  shellb編程基礎第五篇              本章內容:數組 變量:存儲單個元素的內存空間數組:存儲多個元素的連續的內存空間…

    系統運維 2016-08-24
  • Linux文本處理三劍客之awk詳解

    前言 awk是一款強大的報告生成器,不同于sed和grep,它的側重點是如何把文本信息更好的展示出來,常用與統計和格式化輸出。awk相當于微型的shell,有著自己一套語法結構,例如:循環結構,數組,條件判斷,函數,內置變量等功能。處理對象一般純文本文件或純文本信息。 用法詳解 基本語法 awk [options] 'progra…

    Linux干貨 2015-04-29
  • Linux學習之數據重定向

    大綱: 一、數據重定向定義 二、數據重定向分類 三、數據重定向作用 四、示例 一、數據重定向:命令的運行的結果默認輸出在監視器上,重定向就是把這個結果輸出到其它地方或其它文件。 二、數據重定向分類: 1.標準輸出: (standard output,簡稱stdout,代碼為 1 ,使用 > 或 >>):命令執行成功輸出的正確提示信…

    Linux干貨 2015-06-24
欧美性久久久久