任務計劃配置

    任務計劃:

        linux任務計劃,周期任務執行

        未來的某個時間點執行一次任務:at,batch:系統自行選擇空閑時間去執行此處指定的任務

        周期性運行某任務:cron   

    at [option] TIME

    常用選項:

        -V 顯示版本信息

        -l 列出指定隊列中等待運行的作業,相當于atq

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

        -c 查看具體作業任務

        -f /path/from/somefile;從指定的文件中讀取任務

        -m 當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出。

        注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶

        TIME:定義出什么時候進行 at 這項任務的時間

            HH:MM[yyyy-mm-dd]

            noon,midnight,teatime(4pm)

            tomorrow

            now+#(minutes,hours,days,OR weeks)

   at時間格式:

           HH:MM 02:00

           在今日的HH:MM進行,若該時刻已過,則明天此時執行任務。

           HH:MM YYYY-MM-DD 04:00 2016-10-14

           規定在某年某月的某一天的特殊時刻進行該項任務

           HH:MM[am|pm][Month][Date]

           04pm March 17

           17:20 tomorrow

           HH:MM[am|pm] + number [minutes|hours|days|weeks]

           在某個時間點再加上幾個時間后才進行該項任務

           now + 5 minutes

           04pn + 3 days

   執行方式:

           1)交互式 2)輸入重定向 3)at -f文件

           依賴與atd服務,需要啟動才能實現at任務

           at隊列存放在/var/spool/at目錄中

           通過/etc/at.{allow,deny}控制用戶是否能執行at任務

           先尋找/etc/at.allow 文件,文件中的使用者才能使用at,沒有在這個文件中的使用者則不能使用at(即使沒有寫在at.deny當中)

           如果/etc/at.allow 不存在,就尋找/etc/at.deny 這個文件 若寫在這個at.deny 的使用者則不能使用at,而沒有在這個at.deny文件中的使用者則可使用at 命令

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

   

  周期性任務計劃cron

   相關的程序包;

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

           cronie-anacron:cronie的補充程序;用于監控cronie任務執行狀況,如cronie中的任務在過去該運行的時間點未能正常運行,則anacron會隨后啟動一次此任務

           crontabs:包含centos提供系統維護任務

  計劃任務:

  確保crond守護處于運行狀態:

    centos 7:

              systemctl status crond

     centos 6:

             service crond status

  計劃周期性執行的任務提交給crond,到指定時間會自動運行

     系統cron任務:

            系統維護作業

            /etc/crontab

     用戶cron任務:

               crontab -e

          日志: /var/log/cron

     系統cron任務: /etc/crontab

    注釋行以#開頭

    詳情參見 man 5   crontab

          # 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)特定值:

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

        (2)*:

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

            表示“每…”

        (3)高散取值:

            #,#,#

        (4)連續取值:-

            #-#

        (5)在指定時間范圍上,定義步長

            /#:#即為步長

        時間格式:

             @reboot Run once after reboot.   重啟執行任務

             @yearly   0 0 1 1 *每年1月1號執行任務

             @annually 0 0 1 1 *  每年1月1號執行任務

             @monthly  0 0 1 * *每月1號執行任務

             @weekly   0 0 * * 0每周執行任務

             @daily    0 0 * * *每天執行任務

             @hourly   0 * * * *每小時執行任務

        系統的計劃任務:

            /etc/crontab

            /etc/cron.d/  配置文件

            /etc/cron.hourly/ 腳本

            /etc/cron.daily/  腳本

            /etc/cron.weekly/ 腳本

            /etc/cron.monthly/腳本

        cron服務介紹:

            運行計算機關機時cron不運行的任務, CentOS6.0以后版本取消anacron服務,由crond服務管理。

            假設計算機沒有一直開機

            對筆記本電腦、臺式機、工作站及其它不一直開機的系統很重要

            對偶爾要關機的服務器很有用

            配置文件: /etc/anacrontab,負責執行/etc/cron.daily /etc/cron.weekly /etc/cron.monthly中系統任務。 /etc/cron.hourly/由/cron.d/0hourly執行

            字段1:如果在這些日子里沒有運行這些任務……

            字段2:在重新引導后等待這么多分鐘后運行它

            字段3:任務識別器,在日志文件中標識

            字段4:要執行的任務

        管理臨時文件:

            rhel6.0使用/etc/cron.daily/tmpwatch定時清除臨時文件。

            rhel7.0使用systemd-tmpfiles-setup服務實現

        配置文件:

            /etc/tmpfiles.d/*.conf

            /run/tmpfiles.d/*.conf

            /usr/lib/tmpfiles/*.conf

            /usr/lib/tmpfiles.d/tmp.conf

            d /tmp 1777 root root 10d

            d /var/tmp 1777 root root 30d

        命令:

            systemd-tmpfiles –clean|remove|create configfile

        計劃任務:

        用戶cron:

            crontab命令定義,每個用戶都有專用的cron任務文件:

            /var/spool/cron/USERNAME

        crontab命令:

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

            -l: 列出所有任務;

            -e: 編輯任務;

            -r: 移除所有任務;

            -i:同-r一同使用,以交互式模式移除指定任務

            -u user: 僅root可運行,指定用戶管理cron任務

        控制用戶執行計劃任務:

            /etc/cron.{allow,deny

            at和crontab

            一次性作業使用 at

            重復性作業使用crontab

            Create at time crontab -e

            List at -l crontab -l

            Details at -c jobnum N/A

            Remove at -d jobnum crontab -r

            Edit N/A crontab -e

            沒有被重定向的輸出會被郵寄給用戶

            根用戶能夠修改其它用戶的作業

        計劃任務

         注意:運行結果的標準輸出和錯誤以郵件通知給相關用戶

               (1)COMMAND > /dev/null

             (2) COMMAND &> /dev/null

         對于cron任務來講,%有特殊用途,如果在命令中要使用%,則需要轉義,不過,如果把%放置于單引號中,也可以不用轉義

         運行秒級別任務?

              可以直接寫為 * * * * * sleep 20 sh /home/test.sh

             或者* * * * * for min in 0 1 2; do echo "hi"; sleep 20;done

         sleep命令:

            sleep NUMBER[SUFFIX]…

          SUFFIX:

            s: 秒, 默認

            m: 分

            h: 小時

            d: 天

        案例練習:

            01 * * * * ntpdate time.windows.com

            

            上面的例子表示每小時01分同步一次系統時間。

            

            59 23 * * * /etc/init.d/httpd restart

            上面的例子表示每晚的23:59重啟apache。

            

            45 4 1 * * /etc/init.d/httpd restart

            

            上面的例子表示每月1日的4:45分重啟apache。

            

            45 4 1,10,22 * * /etc/init.d/httpd restart

            上面的例子表示每月1、10、22日的4 : 45重啟apache。

            

            10 1 * * 6,0 /usr/local/apache/bin/apachectl restart

            上面的例子表示每周六、周日的1 : 10重啟apache。

            

            0,30 18-23 * * * /usr/local/apache/bin/apachectl restart

            上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟apache。

            

            0 23 * * 6 /usr/local/apache/bin/apachectl restart

            上面的例子表示每星期六的晚上11 : 00 pm重啟apache。

            

            * */1 * * * /usr/local/apache/bin/apachectl restart

            每一小時重啟apache

            

            * 23-7/1 * * * /usr/local/apache/bin/apachectl restart

            晚上11點到早上7點之間,每隔一小時重啟apache

            

            0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart

            每月的4號與每周一到周三的11點重啟apache

            

            0 4 1 jan * /etc/init.d/httpd restart

            一月一號的4點重啟apache

            

原創文章,作者:鬧鐘哥,如若轉載,請注明出處:http://www.www58058.com/45324

(0)
鬧鐘哥鬧鐘哥
上一篇 2016-09-11 23:18
下一篇 2016-09-12 05:46

相關推薦

  • 第二周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理命令:cp、mv、rm (1)cp命令:copy     單源復制:cp [OPTION]… [-T] SOURCE DEST     多源復制:cp…

    Linux干貨 2016-12-10
  • N25第二周

      1,Linux上的文件管理命令都有哪些,其常用的使用方法及其相關示例演示。        文件查看類命令:cat, tac, head, tail, more, less           分屏…

    Linux干貨 2016-12-12
  • X-Y Problem

    X-Y Problem 對于X-Y Problem的意思如下: 1)有人想解決問題X2)他覺得Y可能是解決X問題的方法3)但是他不知道Y應該怎么做4)于是他去問別人Y應該怎么做? 簡而言之,沒有去問怎么解決問題X,而是去問解決方案Y應該怎么去實現和操作。于是乎: 1)熱心的人們幫助并告訴這個人Y應該怎么搞,但是大家都覺得Y這個方案有點怪異。2)在經過大量地討…

    Linux干貨 2016-08-15
  • centos啟動模式更改

    臨時更改   用單用戶的方法 系統開機 然后在等待界面是按esc 然后會進入這個界面,根據下面的提示進入 按a 會進入下面這個界面 在最后一行輸數字代表第幾模式   文件更改   centos6   系統啟動時會初始化init init 的配置文件是/etc/inittab文件 用vim /etc/inittab進入查…

    2017-07-22
  • 文件系統磁盤管理上

    磁盤:主要作用用于存儲數據 早期一塊硬盤共有256個盤面,每個盤面有1024個磁道,每個磁道有63個扇區,每個扇區的大小是512byte 硬盤的命名: 早期IDE硬盤標記為hd scsi、usb、sas標記為sd 引用設備的方式 設備文件名 標卷 UUID 硬盤分區: 第0個磁道的第0個扇區存放的是磁盤的信息 MBR:Master Boot Record 主…

    Linux干貨 2016-08-30
  • OpenSSL用法詳解

    OpenSSL用法詳解 OpenSSL:        組件:libcrypto,libssl                 openssl &nb…

    Linux干貨 2016-09-23
欧美性久久久久