• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

               C++ 技術中心

               :: 首頁 :: 聯系 ::  :: 管理
              160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks

            公告

            鄭重聲明:本BLOG所發表的原創文章,作者保留一切權利。必須經過作者本人同意后方可轉載,并注名作者(天空)和出處(CppBlog.com)。作者Email:coder@luckcoder.com

            留言簿(27)

            搜索

            •  

            最新隨筆

            最新評論

            評論排行榜

            1.crontab命令選項:
            -u指定一個用戶,
            -l列出某個用戶的任務計劃,
            -r刪除某個用戶的任務,
            -e編輯某個用戶的任務

            2.cron配置文件(文件位置:/etc/crontab)語法:
            分      小時   日       月       星期     命令
            0-59   0-23   1-31   1-12     0-6     command     (取值范圍,0表示周日一般一行對應一個任務)

            3.記住幾個特殊符號的含義:
            “*”代表取值范圍內的數字,
            “/”代表”每”,
            “-”代表從某個數字到某個數字,
            “,”分開幾個離散的數字

            4.配置文件的寫法
            可以使用crontab -e命令來編輯,也可以直接修改/etc/crontab文件
            具體格式如下:
            Minute Hour Day Month Dayofweek   command
            分鐘      小時   天        月       天每星期       命令
            每個字段代表的含義如下:
            Minute             每個小時的第幾分鐘執行該任務
            Hour               每天的第幾個小時執行該任務
            Day                 每月的第幾天執行該任務
            Month             每年的第幾個月執行該任務
            DayOfWeek     每周的第幾天執行該任務
            Command       指定要執行的程序
            在這些字段里,除了“Command”是每次都必須指定的字段以外,其它字段皆為可選字段,可視需要決定。對于不指定的字段,要用“*”來填補其位置。
            舉例如下:
            5     *    *     *         *      ls             指定每小時的第5分鐘執行一次ls命令
            30       5       *         *     *      ls             指定每天的 5:30 執行ls命令
            30       7       8         *     *      ls             指定每月8號的7:30分執行ls命令
            30       5       8         6     *      ls             指定每年的6月8日5:30執行ls命令
            30       6       *         *     0      ls             指定每星期日的6:30執行ls命令[注 0表示星期天,1表示星期1,以此類推,也可以用英文:sun表示周天,mon表示周一等。]
            30       3       10,20  *     *      ls     每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
            25       8-11  *         *     *      ls       每天8-11點的第25分鐘執行ls命令[注:“-”用來連接連續的時段]
            */15   *       *         *     *      ls         每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]
            30      6       */10    *     *    ls       每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。 ]
            50      7       *          *    *     root     run-parts     /etc/cron.daily   每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件

                                                                  [ 注:run-parts參數表示,執行后面目錄中的所有可執行文件。


            下面是Linux 上crontab手冊中的知識點:

            1. crontab文件“正式行”的開始

            空行、以空格或者“tab”開行的行,被cron(daemon)忽略。

            以#開始的行,作為注釋被cron(daemon)忽略。

            “注釋”不允許與“命令”放在同一行(作為命令的注釋),會被作為“第六段”,被cron(daemon)執行。

            同樣的,也不能放在設置環境變量的同一行。

            2. 在crontab文件中指定環境變量

            設置變量使用

            name = value

            這樣的格式,”=”號左右的空格不是必須的。

            幾個變量默認已經被設置,比如:

            SHELL=/bin/sh
            HOEM=/home/nnix
            LOGNAME=nnix

            其中SHELL和HOME可以重新設定,LOGNAME則不可(大概跟確定crontab文件的位置有關)。

            默認,crontab會把執行的輸出發送給crontab的所有者,除非重新設定變量:

            MAILTO=other_or_email

            另外,當crontab發送輸入時的郵件編碼,可以通過設置變量 CONTENT_TYPE 和 CONTENT_TRANSFER_ENCODING 來使用正確的編碼來發送郵件。

            3. crontab 文件的分段

            依次分別是

            • 分(0-59)
            • 時(0-23)
            • 日(1-31)
            • 月(1-23,或者英文名)
            • 周(0-6,或者英文名,0表示周日)
            • 要執行的內容

            4. 前五段:時間和日期

            1)表示任意:* 號表示 “任意”(first-last)。

            2)指定數字,表示指定的時間。

            3)指定段,表示“開始-結束”內包含的數:比如3-6,表示3,4,5,6

            4)指定列表:比如 “1,2,3,4″,”0-4,8-12″

            5)指定“步長”:8-14/2 表示8,10,12,14

            5. 模糊的第六段:

            1)除去前五段,從第六段開始到換行符或者“%”為止,為要執行的命令。

            2)默認第六段將被/bin/sh執行,除非在crontab文件中指定了非/bin/sh的SHELL變量。

            3)第六段中的”%”號,除非前面加”\”號轉交,否則,“%”號將結束命令行、換行的意義,并且其后的內容會被做為標準輸入發送給前面的命令。

            6. 沖突的邏輯

            日期可以用月限定,也可以用“星期”指定,如果兩個段有沖突(比如這兩段不同時為“*”),那么,第六段的命令將在匹配任何一個的情況下運行,比如

            “30 4 1,15 * 5″,將在每月的1號和15號 加 每個周五,上午4:30運行。

            7. crontab文件中的神密符號“%”

            可能會遇到的一個問題是,在第六段中需要使用date生成日志文件名,比如:

            0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +%y-%m-%d`.dump.log

            這時會發現crontab怎么也不運行這個mysql_dump.sh,也看不到有日志生成。這是因為在crontab文件中,”%”是有特殊含義 的。假如不需要“%”的特殊作用,需要使用轉義符轉義。上面應該寫成:

            0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +\%y-\%m-\%d`.dump.log

            “%”在crontab文件中,有“結束命令行”、“換行”、“重定向”的作用,比如:

            0 22 * * 1-5 mail -s “It’s 10:00 pm” joe%Joe,%%Where are your kids?%

            將會在周一至周五的22:00發送一分內容為:

            Joe,<換行>
            <換行>
            Where are your kids?<換行>

            8. 不能理解的特殊用法

            @reboot : Run once, at startup.

            為了達到在開機后運行,且只運行一次的目的,除了這個,恐怕無法通過前五段的設置來實現吧?

            cron是linux下定時執行工具,可在完全無人工干預的情況下作業。可以用一下命令來手動開啟或關閉該任務:

            /sbin/service crond start 啟動服務
            /sbin/service crond stop 關閉服務
            /sbin/service crond restart 重新啟動服務
            /sbin/service crond reload 重新加載服務
            你也可以將這個服務在系統啟動的時候自動啟動:

              在/etc/rc.d/rc.local這個腳本的末尾加上:

              /sbin/service crond start

             現在Cron這個服務已經在進程里面了,我們就可以用這個服務了

            crontab -u root -e可以編輯制定用戶

            每次編輯完某個用戶的cron設置后,cron自動在/var/spool /cron下生成一個與此用戶同名的文件,此用戶的cron信息都記錄在這個文件中,這個文件是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動后每過一份鐘讀一次這個文件,檢查是否要執行里面的命令。因此此文件修改后不需要重新啟動cron服務。

              2.編輯/etc/crontab 文件配置cron

              cron服務每分鐘不僅要讀一次/var/spool/cron內的所有文 件,還需要讀一次/etc/crontab,因此我們配置這個文件也能運用cron服務做一些事情。用crontab配置是針對某個用戶的,而編輯 /etc/crontab是針對系統的任務。此文件的文件格式是:

              SHELL=/bin/bash

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

              MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號

              HOME=/ //使用者運行的路徑,這里是根目錄

              # run-parts

              01 * * * * root /home/bluesky/test.sh>>test.log //每小時執行test.sh的腳本

              02 4 * * * root  /home/bluesky/test.sh//每天執行test.sh內的腳本

              22 4 * * 0 root  /home/bluesky/test.sh //每星期執行test.sh內的腳本

              42 4 1 * * root run-parts /home/bluesky/test.sh //每月去執行test.sh內的腳本

              大家注意"run-parts"這個參數了,如果去掉這個參數的話,后面就可以寫要運行的某個腳本名,而不是文件夾名了。



            posted on 2011-04-16 08:26 C++技術中心 閱讀(2418) 評論(0)  編輯 收藏 引用 所屬分類: Linux 操作
            蜜臀久久99精品久久久久久| 久久精品国产亚洲麻豆| 日韩欧美亚洲综合久久影院Ds | 午夜福利91久久福利| 国产精品久久久久久五月尺| 久久99久久99精品免视看动漫| 久久精品成人免费看| 国产精品久久久久免费a∨| 久久se精品一区精品二区| 精品国产乱码久久久久软件| 久久精品中文闷骚内射| 日本国产精品久久| 久久99国产精品99久久| 狠狠色婷婷久久综合频道日韩| 伊人久久免费视频| 久久久久人妻精品一区二区三区| 国产成人无码精品久久久久免费| 欧美日韩精品久久免费| 97久久国产亚洲精品超碰热 | 久久精品国产精品亚洲毛片| 久久91这里精品国产2020| 少妇人妻88久久中文字幕| 无码人妻久久一区二区三区蜜桃| 精品无码久久久久久尤物| 久久精品免费一区二区| 久久精品无码一区二区三区免费 | 18岁日韩内射颜射午夜久久成人| 亚洲日韩中文无码久久| 一本综合久久国产二区| 无码乱码观看精品久久| 色婷婷噜噜久久国产精品12p| 久久精品国产精品亚洲| 久久精品国产亚洲一区二区| 国产精品99久久免费观看| 老色鬼久久亚洲AV综合| 久久精品亚洲中文字幕无码麻豆| 久久成人国产精品免费软件| 精品人妻伦九区久久AAA片69| 午夜精品久久久久| 影音先锋女人AV鲁色资源网久久| 人妻无码精品久久亚瑟影视 |