任務計劃使用方法

概述

    任務計劃其實就是針對未來的某一刻或者是某一周期內設置要執行的工作;

    任務計劃分為兩種:

        1、一次性任務:在指定的未來的某個時間點僅執行一次任務;

            命令:at batch

        2、周期性任務:根據設置的時間循環工作。

            命令:crontab

一次性工作調度

    at命令

        使用at命令時,首先其服務atd必須開啟,否則無法使用此命令。

        1.png

       語法格式: at [-ldc] TIME 

        下面舉例來說明at命令的用法:

        1、使用at命令來設置任務:

            2.png

           上面的命令表示:從現在起2分鐘后執行ls /tmp命令,使用快捷鍵Ctrl+d來結束命令輸入。

           at命令并不會把執行結果輸出到屏幕上,而是默認給任務設置者發送郵件;每個用戶被創建時系統都會默認為其創建郵箱,可以通過變量$MAIL來查看郵箱的路徑,以root用戶為例:

           可以看到root用戶的郵箱路徑

            3.png

           查看郵箱最下面的內容即為ls /tmp的結果

           4.png          

            在上面的at命令中使用 now + 2 minutes來指定時間,下面詳細說明時間的表示方法:

                絕對時間:

                    HH:MM:表示在今日的HH:MM時執行任務,若設置任務時已經超過了此時間,則為明天的HH:MM執行。如:02:00。

                    HH:MM YYYY-MM-DD:表示在某年某月某日的HH:MM執行任務。如:02:00 2015-03-25。

                    HH:MM[am|pm] [Month] [Date]:表示某月某日的HH:MM執行任務。

                相對時間:

                    now + # [minutes|hours|days|weeks]:表示從現在開始再過多少時間執行任務。

                模糊時間:

                    noon:相當于12:00

                    midnight:相當于00:00

                    teatime:相當于4:00 pm

                    tomorrow:明天         

        2、查詢已經設置的at任務

                5.png

                第一列為任務的編號,之所以是5和6是因為之前的at任務已經執行完成;

                第二列是任務執行的時間;

                最后一列表示任務的執行者為root。

                此命令相當于命令atq。

        3、刪除已經設置的at任務

                6.png

                刪除編號為5的at任務。

                此命令相當于命令atrm。

         4、查看at任務的工作內容

               7.png

            使用-c選項可以輸出任務的工作腳本,其實此參數就是將/var/spool/at/目錄中與任務相對應的文件顯示了出來;使用at命令設置好的任務都會以/var/spool/at/目錄中自動生成一個腳本文件,如下圖:

                8.png

                9.png

                可以看到文件中a0000后的數字與任務編號相對應。

        5、at的權限

            at使用/etc/at.allow和/etc/at.allow兩個文件來控制權限。

            1、寫在/etc/at.allow文件中的用戶可以才能使用at; 

            2、如果/etc/at.allow不存在,查找/etc/at.deny文件,如果寫在/etc/at.deny文件中則不能使用at,否則就有使用at的權限;

            3、如果兩個文件都存在,則/etc/at.allow文件生效;

            3、如果兩個文件都不存在,就只有root可以使用at命令。

    batch命令

        功能與at相同,但不需要指定時間,自動選擇系統空閑時運行計劃任務。

周期性工作調度

    crontab命令

        使用此命令必須確保crond服務是開啟狀態。

        10.png

        語法格式:crontab [-u username] [-l|-e|-r]

            -e:編輯crontab的工作內容;

            -u:只有root用戶才能使用此參數,幫助其它用戶建立任務;

            -l:查閱crontab的工作內容;

            -r:刪除crontab的所有工作內容。

       1、編輯cron任務

        在第一次使用crontab -e命令進行編輯工作時,會發現這是一個空的文件,沒有任何文字可供參考,那么任務怎么寫呢?

        系統提供了crontab的配置文件,打開/etc/crontab文件可以看到格式的說明:

            11.png

            文件上面的部分是定義的環境變量,這些環境變量已經在系統中都定義可以正常使用了,為什么還要在配置文件中再定義一次呢?

            由于crontab定義的是周期性任務,在運行任務時并不能保證任務發起者處于系統登錄狀態,如果用戶退出登錄后,其對應的環境變量也被相應的取消了;那么任務運行的環境($SHELL),命令查找的路徑($PATH)等信息就都無法讀取,會造成任務的執行失敗;在任務運行前先從配置文件中讀取環境變量,就可以避免此問題的發生了。

            文件下面的部分是crontab任務的格式說明,我們根據配置文件的信息來說明crontab任務的格式。

            cron任務分為兩類:

                1、系統cron任務

                    格式:分鐘 小時 周幾 用戶 任務

                2、用戶cron任務

                    格式:分鐘 小時 周幾 任務

                  時間的有效取值范圍:                  

                    分鐘:0-59

                    小時:0-23

                    天:  1-31

                    月:  1-12

                    周:  0-7,07都表示周日

                時間通配表示:

                    * :對應時間的所有有效取值

                    ,:離散時間點, 10,40 * * * * 每小時第10分鐘和第40分鐘

                    – :連續時間     10 02 * * 1-5  每周一到周五

                    / :對應取值范圍內每多久一次   */3 * * * *   3分鐘

                例如:0 5 * * 1  表示每周一的5點鐘;

                      * 5 * * 1  表示每周一的5:00-5:59的每一分鐘

                

                crontab的執行結果也會以郵件的形式發送到任務發起者的郵箱中。           

            注意:crontab命令使用-e選項進行編輯時,實際上就是編輯/var/spool/cron/USERNAME(當前用戶名)文件,以root為例:

            5.png

            但不要直接編輯此文件進行任務訂制,因為使用-e選項可以自動識別語法錯誤,而使用vim直接打開文件進行編輯則沒有此功能。

        2、查看cron任務

            1.png

        3、為其它用戶定義cron任務         

            2.png

            3.png

        4、刪除所有的cron任務

            4.png

            如果想要只刪除某一條的任務,使用-e選項手動刪除即可。

        5、cron的權限

            與at一樣,cron也使用文件來定義用戶的使用權限;

            /etc/cron.allow :寫入此文件的用戶可以使用crontab,沒有寫入的用戶則不可使用;

            /etc/cron.deny :寫入此文件的用戶不可以使用crontab,沒有寫入的用戶則可以使用;

            /etc/cron.allow比/etc/cron.deny的優先級要高,同一賬號在兩個文件中同時出現時,以/etc/cron.allow為準。

        6、日志功能

            cron執行的每一項任務都會被記錄到/var/log/cron這個日志文件。

            6.png

    anacron命令        

        檢查有沒有過去一個有效周期未曾執行的任務,如果有,在開機后的指定時間點執行一次;

        查看anacrontab配置文件

            8.png

         配置文件中任務的四個值的含義:

             period in days      delay in minutes    job-identifier    command

            過去沒執行的天數    開機后第多少分鐘數     工作名稱         任務

         此命令在生產環境中基本用不到,此處不再進一步說明。

    

 

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

(0)
petmasterpetmaster
上一篇 2015-03-26
下一篇 2015-03-27

相關推薦

  • 10月18日作業–hash,history

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。 1、使用ntpdate對時間進行同步,然后hwclock -w;并再建立Crontab每小時進行一次時間同步。 2 生產有一個數據同步腳本需要執行很長時間,怎樣做到無人值守,在管理工具退出的情況下,腳本依然能正常運行。 1、載光盤 2、進入/mnt/Packages 安裝共享screen…

    Linux干貨 2016-10-19
  • linux篩選數據和用戶基本操作

    linux篩選數據的基本操作 列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。   [root@localhost script]# who   chenjianhang tty1      …

    Linux干貨 2016-10-17
  • DNS配置

     DNS配置 基本的配置準備 1.安裝bind 2.開啟named服務 一、正向解析庫 1、修改/etc/named.conf配置文件 vim /etc/named.conf 修改如下行 listen-on port 53 { 10.1.44.2; } allow-query     { any; } recursion no;…

    Linux干貨 2016-10-09
  • N26 第二周

    本周學習了: linux的目錄層級結構、常見文件類型、bash基本特性、文件的基本管理命令、globbing文件通配符、用戶管理命令 開始作業! 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。    文件管理命令有:ls,cp,mv,pwd,mkdir,rmdir,touch  …

    Linux干貨 2017-01-12
  • 推薦-常用RAID級別詳解

    一、RAID是什么       RAID(Redundant Arrays of Indent Disks)的名稱是獨立磁盤冗余陣列,是一種通過將多塊硬盤按照某種特定的結構組織起來當做一塊硬盤來使用的技術,多塊硬盤不同的組織結構我們稱之為RAID的級別。而RAID技術的特性主要表現在兩個方面: (1)提高硬盤…

    Linux干貨 2016-03-27
  • N25_第十二周作業

    1、請描述一次完整的http請求處理過程;     1)建立或者處理連接:建立請求或拒絕請求     2)接收請求:接收來自于網絡上的主機請求報文中對特定資源的一次請求的過程;     3)處理請求:對請求報文進行解析,主要獲取客戶端請求的…

    Linux干貨 2017-03-06

評論列表(2條)

  • stanley
    stanley 2015-04-02 22:39

    參考其它優秀博文優化下現有的格式,有些技巧會讓自己的博文更優美

    • petmaster
      petmaster 2015-04-03 00:11

      @stanley謝謝!

欧美性久久久久