国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Linux之計劃任務(wù)詳解

2016-08-21 09:19:34 20581

計劃任務(wù)特性

1. 需要在指定的某時間段運行
2. 需要將任務(wù)結(jié)果郵件通知用戶
3. 單次任務(wù)及循環(huán)任務(wù)區(qū)別

Linux計劃任務(wù)的實現(xiàn)工具

1. at工具
  • 其只能執(zhí)行一次性任務(wù)

  • 其會自動加載部分環(huán)境變量

  • 可以執(zhí)行命令

  • 可以執(zhí)行腳本

  • 作業(yè)有隊列,用單字母表示,默認為a隊列

  • 作業(yè)計劃任務(wù)是以絕對序列值進行排序

  • 任務(wù)結(jié)果會以郵件的形式通知用戶

2. batch工具
  • 其使?方法與at工具類似

  • 最大的區(qū)別為:它會選擇系統(tǒng)在比較空閑的時間段執(zhí)行任務(wù)

3. crontab命令
  • 其可以循環(huán)執(zhí)行任務(wù),實現(xiàn)周期性任務(wù)

  • 最小時間單位為分鐘,如果需要到級別,需要你是用外部機制

  • 可以執(zhí)行命令

  • 可以執(zhí)行腳本

  • 每次的任務(wù)都會發(fā)送郵件至用戶通知

  • 其依賴于crond守護進程及相關(guān)輔助工具,cronie是其主程序包

一、at工具

synopsis: at [OPTIONS]...time

  • [time]格式

    • 20:10 2015-10-30

    • HH:MM[YYYY-mm-dd]

    • noon : 正午

    • midnight : 午夜

    • teatime : 下午4點

    • tomorrow : 明天

    • now +# UNIT

        * UNIT: min,hours,days,weeks
  • [options]

    • at -d 3 ==    atrm 3 :刪除第3號任務(wù)

    • at -f at.sh now+5min

    • -l : 列出任務(wù)隊列,相當于atq命令

    • -f FILE : 從指定文件中讀取作業(yè)任務(wù),不用交互式輸入

    • -d # : 刪除任務(wù)

    • -c # : 查看指定任務(wù)的內(nèi)容

    • -q a|b|c|d : 指定默認隊列

二、crontab工具

cron任務(wù)的分類
  • 系統(tǒng)cron任務(wù)

    • 直接編輯/etc/crontab文件

    • /etc/crontab

    • 配置文件

    • 配置命令

  • 用戶cron任務(wù)(root用戶也不例外)

    • crontab -e

    • /var/spool/cron/USERNAME

    • 配置文件

    • 配置命令

/etc/crontab文件的格式
    # .---------------- 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
  • 每一行定義一個周期性任務(wù)

  • 此處的環(huán)境變量不同于用戶登錄后獲得的環(huán)境,因此,建議命令使用絕對路徑,或自定義path環(huán)境變量

  • 執(zhí)行結(jié)果郵件發(fā)送給想著用戶,即mailto=中定義的用戶

  • 普通用戶不需要定義mailto參數(shù),因為他的任務(wù)文件就以用戶名命名

  • 共7個字段

  • 如果命令中有%這類的符號,需要轉(zhuǎn)義,但旋轉(zhuǎn)到單引號中的不用轉(zhuǎn)義

crontab命令:

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

  • [options]

    • -e : 編輯任務(wù),建議使用crontab -e,這樣可以幫忙檢查其錯誤

    • -l : 列出所有任務(wù)

    • -r : 移除所有任務(wù),即刪除對應/var/spool/cron/USERNAME文件

    • -i : 交互式,在使用-r刪除所有用戶時,提示用戶確認

    • -u USER : root用戶可以為指定的用戶管理、指定任務(wù)

注意:運行結(jié)果會以郵件方式通知當前用戶,如果拒絕接收郵件,可以會導致未備份成功卻沒有任何消息反饋的情況,建設(shè)如下操作:
  • COMMAND > /dev/null : 將正確結(jié)果刪除,只返回錯誤輸出并發(fā)送郵件至用戶

  • COMMAND &> /dev/null : 不建議此操作

  • 指定的某任務(wù)在指定的時間因關(guān)機未能執(zhí)行,下次開機不會自動執(zhí)行

  • 如果某時間點因故未能按時執(zhí)行,下次開機后無論是否到了相應時間點,都要補充執(zhí)行一次,可使用anacron實現(xiàn)

實例:

  1. 每12小時備份一次/etc目錄至/backups目錄中,保存格式為etc-yyy-mm-dd-hh.tar.xz”

  • 01 */12 * * * root tar Jcf /backups/etc-$(date +"\%F-\%H-\%S").tar.xz /etc/

每周2、4、7備份/var/log/secure文件至/logs目錄中,文件名格式為 secure-yyyymmdd

  • 01 09 * * 2,4,7 root tar Jcf /logs/secure-$(date +"\%Y\%m\%d") /var/log/secure

每兩個小時取當前系統(tǒng)/proc/meminfo文件中以S或M開頭的行信息追加至/tmp/meminfo.txt文件中

  • 01 */2 * * * root grep '^[M|S]' /proc/meminfo > /tmp/meminfo.txt


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: