linux任務計劃

一、任務計劃分爲兩類

    一次性:
        at, batch
    週期性:
        vixie cron: crontab

    一次性任務執行:
    at now+3min
    at 11:30
        noon, midnight, teatime

    at TIME
    at>  命令/腳本
    Ctrl+d: 提交任務

    at -l = atq     列出等待執行的任務

    執行結果以郵件方式發送給任務發起者;
    查看郵件:
    # mail   顯示所有列表
        & #   加數字顯示單個
        & q  退出顯示

    刪除尚未執行的任務:
        at -d JOB_ID = atrm JOB_ID

    at -f /PATH/TO/AT_SCRIPT TIME  調用文件中命令列表    at腳本

at任務實際應用舉例,修改遠程服務器IP前  設定任務 以防修改IP後鏈接丟失 如修改IP無問題再取消任務


    週期性任務:
        vixie cron
        crond: daemon
            守護進程: daemon
                /etc/init.d/

        uptime  系統資源狀態查看


    crond: 配置文件
        crontab:
            系統cron:/etc/crontab

            用戶cron: /var/spool/cron/USERNAME

        1、運行者身份;
            用戶cron: 定義者
                6個字段,與系統cron相比,無需指定用戶身份
            系統cron: 在配置文件指定
                7個字段

# 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   以哪個用戶身份執行

                3 4 * * * root cat /etc/fstab  每天4時3分      周幾不與月日同時用
                通配符:
                    *:相應時間點的所有有效取值
                    ,: 離散取值,   3,18,33,48 * * * * root cat /etc/fstab
                    /: 定義指定取值範圍內的頻率, 例如:*/3 * * * * root cat /etc/fstab      */3 即每三分鐘   17 */3 * * * root cat /etc/fstab   每三小時的第17分執行一次
                    -: 連續取值:17 8-20/3 * * * root cat /etc/fstab

                    3 18 * * 2,5
                    7 2 */2 * * root tar -Jcf /backup/etc-`date '+%F'`.tar.xz /etc/*

                    2,32 8-18/3 * * 1-5


        2、PATH
            /bin:/sbin:/usr/bin:/usr/sbin
                如果是命令:使用絕對路徑
                如果是腳本:在腳本自行定義PATH=

        3、拒收郵件
            方法一:
                MAILTO=‘’空即不發
            方法二:
                &> /dev/null    常用方法

 


    用戶cron的定義: 位於/var/spool/cron/目錄下
        crontab
            -e    與直接vm相比此方法可提示語法錯誤
            -r: 移除配置文件,會刪除所有任務;
            -l: 列出週期性任務
            -u USERNAME
                crontab -e -u hadoop

 

crontab, process, function, sed, awk, boot, grub, kernel

 

單位執行任務計劃:
方法1:
* * * * * /usr/bin/unison webdata ;sleep 30;/usr/bin/unison webdata  或者如下
* * * * * sleep 30 && /usr/bin/unison webdata

方法2:
* * * * * for i in 0 1 2; do some_job && sleep 15; done; some_job
    0: 15,
    15:30
    30: 45
    45:

* * * * * for i in {1..5}; do some_job && sleep 10; done; some_job


注意:使用%時要加反斜線。例如:
1 2 3 * * touch ~/file_$(date +\%Y\%m\%d).txt

但使用單引號後也可以不再使用反斜線,例如:
1 2 3 * * touch ~/file_$(date '+%Y%m%d').txt


禁止在自動任務執行後發送電子郵件:

將輸出結果重定向至/dev/null:
>/dev/null 2>&1   或
&> /dev/null

在文件的開始部分加入命令來關閉所有命令的郵件輸出:
MAILTO=""


anacron: 紅帽5  檢查時間已過但未執行的任務並在合適的時間重新執行。

cronie:  紅帽6的機制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章