任務計劃配置

    

    任務計劃:

        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/45694

(0)
鬧鐘哥鬧鐘哥
上一篇 2016-09-12
下一篇 2016-09-12

相關推薦

  • awk學習筆記

        awk是一種模式掃描和處理工具,相對于grep的查找,sed的編輯,它在對數據進行分析生成報表時顯得尤為強大。awk通過逐行遍歷一個或多個文件的方式,查找模式匹配到的行,而后以指定的分隔符(缺省為空格)進行切片,然后針對切片數據進行處理和分析。事實上,gawk有自己的語言,其本身就相當于一個解釋器,允許用戶創建…

    Linux干貨 2015-08-04
  • 進程管理常用命令

    Linux系統上的進程查看及管理工具:pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall,…CentOS 5 :SysV initCentOS 6 :upstartCentOS 7 :syst…

    Linux干貨 2017-05-17
  • shell腳本編程之數組

    bash僅支持一維數組,類型聲明: declare -i    : 表示數值 declare -a  :表示普通數組(默認,可不用聲明類型) declare -A :表示關聯數組(必須聲明類型,bash需4.0以上版本才支持,可通過bash –version查看版本) 一、普通數組(用數字為下標) 1.1數組賦值(修…

    Linux干貨 2015-08-24
  • N25_第五周

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;grep -E "^[[:space:]]+" /boot/grub2/grub.cfg 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;grep -E "^#[[:space:]…

    Linux干貨 2017-01-08
  • 少走冤枉路!帶你走過SNMP的那些坑

    SNMP(Simple Network Management Protocol)即簡單網絡管理協議,是在網絡與系統監控領域中,最常使用的一種數據采集技術。盡管這個協議非常簡單,但在大規模IT環境監測中,還是經常會碰到各種坑,因此優云開源了一套友好的SNMPAPI,并通過本文簡單介紹這套API中的一些特點,希望幫助各位運維同仁提前規避一些問題。 特點[0].&…

    2016-06-22
  • 05linux用戶和組的權限總結

    1、文件的權限分類 文件的權限對象分三類:屬主(u)、屬組(g)、其他(o),每個對象都有rwx,讀寫執行三類權限。 對于文件 r:可查看文件內容 w:可修改其類容 x:可把此文件提請內核啟動為一個進程 對于目錄 r:可使用ls查看此目錄中文件列表 w:可在此目錄中創建和刪除文件 x:可使用ls查看目錄中文件列表,可以cd進入此目錄 X:只給目錄x權限,不給…

    Linux干貨 2016-11-27
欧美性久久久久