Day22 操作系統(tǒng)定時任務(wù)

  1. 課程介紹部分
    1. 定時任務(wù)概念介紹
    2. 定時任務(wù)實現(xiàn)方式
    3. 定時任務(wù)配置應(yīng)用
    4. 定時任務(wù)操作練習(xí)
  1. 課程知識回顧(提問環(huán)節(jié))
    1. 掌握文件權(quán)限信息
    2. 掌握系統(tǒng)默認權(quán)限設(shè)置 umask
    3. 了解系統(tǒng)用戶相關(guān)文件 /etc/passwd /etc/shadow
    4. 了解系統(tǒng)用戶相關(guān)目錄 /etc/skel
    5. 掌握普通用戶提權(quán)方法
      a 直接切換用戶 su -
      b 修改文件/目錄權(quán)限 chown chmod
      c 進行用戶提權(quán) sudo visudo
      d 進行特殊權(quán)限位配置 setuid setgid 粘滯位
      擴展:
      chattr +i 文件信息 --- 將一個文件上鎖
      chattr -i 文件系統(tǒng) --- 將一個文件解鎖
      lsattr 文件系統(tǒng)
    6. 掌握用戶管理相關(guān)命令
  1. 系統(tǒng)定時任務(wù)概念 == 生活中鬧鐘

    1. 時間信息有時不準(zhǔn) 時間同步操作 每過10分鐘
    2. 備份數(shù)據(jù)信息 凌晨
      代替人自動完成一些任務(wù)
  2. 系統(tǒng)定時任務(wù)實現(xiàn)方法:
    1). 定時任務(wù)軟件:cronie *****
    2). 定時任務(wù)軟件:atd 設(shè)置一次定時任務(wù),執(zhí)行一次
    3). 定時任務(wù)軟件:anacron 定時時間有固定設(shè)置 每小時 每天 每個月 cronie-anacron

    實現(xiàn)定時任務(wù)配置:
    1). 系統(tǒng)默認定時任務(wù):
    cron.hourly/ --- 每小時執(zhí)行目錄中腳本文件
    cron.daily/ --- 每天執(zhí)行目錄中腳本文件
    cron.weekly/ --- 每周執(zhí)行目錄中腳本文件
    cron.monthly/ --- 每月執(zhí)行目錄中腳本文件

    vim oldboy.sh
    #!/bin/bash
    echo "info_$(date +%F_%T)" >/tmp/test_cron.txt
    

    2). 用戶自定義設(shè)置定時任務(wù)
    一個命令 兩個文件
    crontab --- 設(shè)置和查看定時任務(wù)命令
    # crontab -l --- 查看設(shè)置的定時任務(wù)
    # crontab -e --- 編輯設(shè)置定時任務(wù)/語法檢查功能

    配置文件
    /var/spool/cron/root   --- root用戶設(shè)置定時任務(wù)配置文件
    /var/spool/cron/oldboy --- oldboy用戶設(shè)置定時任務(wù)配置文件
    /var/log/cron          --- 定時任務(wù)日志文件
    
  3. 定時任務(wù)如何進行配置
    準(zhǔn)備工作:
    systemctl start crond
    systemctl enable crond

    編寫定時任務(wù):
    [root@oldboyedu ~]# cat /etc/crontab --- 定時任務(wù)樣例文件
    SHELL=/bin/bash 環(huán)境變量信息
    PATH=/sbin:/bin:/usr/sbin:/usr/bin 環(huán)境變量信息
    MAILTO=root

     # For details see man 4 crontabs
    
     # 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
    

    定時任務(wù)時間信息 執(zhí)行任務(wù)信息
    * * * * * 命令/腳本

    時間信息:
    *(分) *(時) *(日) *(月) *(周)
    分鐘: 0-59
    小時: 0-23
    日期: 1-31
    月份: 1-12
    星期: 0-6

    任務(wù)信息:
    cp /etc/host /etc/hosts.bak

    練習(xí):

    1. 凌晨2點半 將數(shù)據(jù)進行備份
      crontab -e
      30 2 * * * cp /etc/host /etc/hosts.bak
      如何驗證定時任務(wù)功能:

      1. 實時監(jiān)控定時任務(wù)日志信息
        [root@oldboyedu ~]# tail -f /var/log/cron
        Jul 30 16:56:25 oldboyedu crontab[42580]: (root) BEGIN EDIT (root)
        Jul 30 16:56:38 oldboyedu crontab[42580]: (root) REPLACE (root)
        Jul 30 16:56:38 oldboyedu crontab[42580]: (root) END EDIT (root)
        01 02 03 04
        Aug 1 02:30:01 oldboyedu CROND[42950]: (root) CMD (cp /etc/host /etc/hosts.bak)
        1): 編寫定時/定時任務(wù)觸發(fā) 時間信息
        2): 主機名稱信息
        3): 讀取什么定時任務(wù)文件信息
        4): 定時任務(wù)完成了事情

      2. 加快定時任務(wù)執(zhí)行
        調(diào)整時間信息
        PS: 調(diào)整時間盡量向后調(diào)整

    2. 下午3點40,8月6日,周日 將數(shù)據(jù)進行備份 錯誤?
      40 15 6 8 0
      PS: 在設(shè)置時間信息時, 周信息不能和日期信息一起設(shè)置

    3. 每隔1個小時, 數(shù)據(jù)備份
      /n 每隔多久執(zhí)行定時任務(wù) 間隔多久
      * 每分鐘 每小時 每天 每月 每周
      0 */1 * * * cp /etc/hosts /etc/hosts.01 正確
      * */1 * * * cp /etc/hosts /etc/hosts.01 問題
      說明: 每隔一小時會執(zhí)行
      1:00 --- 2:00 執(zhí)行時間條件
      * --- 每分鐘執(zhí)行
      PS: 在設(shè)置好一個時間信息, 前面的時間也要做規(guī)劃

    4. 每天上午9,10,11,12點 執(zhí)行數(shù)據(jù)備份
      - 連續(xù)的時間范圍
      0 9-12 * * * cp /etc/hosts /etc/hosts.01 規(guī)范配置
      0 9-12/1 * * * cp /etc/hosts /etc/hosts.01 理論正確
      間隔1小時執(zhí)行 9-10 and 9-12點執(zhí)行

    5. 每天上午9 11 執(zhí)行數(shù)據(jù)備份
      , 非連續(xù)的時間范圍
      0 9,11 * * * cp /etc/hosts /etc/hosts.01

    時間表示形式:
    * 每多少時間
    */n 每隔多久 間隔時間
    1-10 連續(xù)時間范圍
    1,10 非連續(xù)時間范圍

  1. 定時任務(wù)編寫常見問題:

    1. 每隔5分鐘, 進行時間同步(ntpdate ntp1.aliyun.com)
      如何編寫定時任務(wù):
      方法一: 采用絕對路徑進行編寫
      */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
      方法二: 放入到腳本文件中
      #!/bin/bash
      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/oldboy:/oldgirl:/root/bin
      echo $PATH &>/tmp/oldboy.txt
      ntpdate ntp1.aliyun.com
      說明: 定時任務(wù)執(zhí)行時, 識別的環(huán)境變量只有/usr/bin:/bin

    2. 規(guī)范化編寫定時任務(wù)
      */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
      postfix 服務(wù)開啟 --- /var/spool/mail/root 郵件 文件不斷變大 占用更多block
      postfix 服務(wù)關(guān)閉 --- /var/spool/postfix/maildrop/ 大量小文件 占用更多inode
      /dev/null --- 系統(tǒng)黑洞

    3. 將/etc/hosts 打包備份 /opt/hosts_時間信息.tar.gz 每分鐘操作
      tar zcvf /opt/hosts_(date +%F).tar.gz /etc/hosts tar zcvf /opt/hosts_`date +%F`.tar.gz /etc/hosts 解決方式一: 將特殊符號前面加上轉(zhuǎn)義符號 \ * * * * * tar zcvf /opt/hosts_(date +%F).tar.gz /etc/hosts
      解決方式二: 將有特殊符號命令放入腳本中
      #!/bin/bash
      tar zcvf /opt/hosts_$(date +%F).tar.gz
      * * * * * sh /server/scripts/tar.sh &>/dev/null
      說明: 定時任務(wù)中有些特殊符號無法識別

    定時任務(wù)編寫注意事項:

    1. 編寫定時任務(wù)需要有注釋信息 (時間 編寫人員 任務(wù)作用)
    2. 編寫定時任務(wù)注意環(huán)境變量 /usr/bin:/bin 命令書寫為絕對路徑
    3. 編寫定時任務(wù)注意特殊符號 需要標(biāo)記轉(zhuǎn)義符號 \
    4. 編寫定時任務(wù)需要將輸出信息定義到空 &>/dev/null
    5. 編寫定時任務(wù)建議使用腳本編寫

    編寫定時任務(wù)規(guī)范:
    命令編寫定時任務(wù):
    第一個里程: 測試命令是否可以在命令行執(zhí)行
    第二個里程: 放入定時任務(wù)中(絕對路徑)
    第三個里程: 調(diào)整時間信息進行測試
    第四個里程: 檢查日志信息/檢查任務(wù)執(zhí)行結(jié)果

    腳本編寫定時任務(wù):
    第一個里程: 編寫腳本信息
    第二個里程: 測試腳本執(zhí)行效果
    /bin/sh /server/scripts/test.sh
    第三個里程: 放入定時任務(wù)中(絕對路徑)
    第四個里程: 調(diào)整時間信息進行測試
    第五個里程: 檢查日志信息/檢查任務(wù)執(zhí)行結(jié)果

    測試環(huán)境測試定時任務(wù)沒問題:
    執(zhí)行腳本將線上服務(wù)器定時任務(wù)做改動

    compress.sh
    #!/bin/bash
    tar xxxxx

    #!/bin/bash
    echo "* * * * * /sh/bin /server/scripts/compress.sh" >>/var/spool/cron/root

  2. 課程知識總結(jié)

    1. 定時任務(wù)概念作用:
      讓反復(fù)工作任務(wù), 可以系統(tǒng)自動執(zhí)行

    2. 定時任務(wù)實現(xiàn)方式:
      系統(tǒng)默認定時任務(wù):
      自定義定時任務(wù): 最短周期是每分鐘 存儲服務(wù)器(用戶數(shù)據(jù)信息 18:00---傳輸圖片---18:00:59)
      實時同步備份數(shù)據(jù)

    3. 定時任務(wù)編寫規(guī)范
      定時任務(wù)文件格式規(guī)范 * * * * * 任務(wù)
      定時任務(wù)時間定義方法

    4. 定時任務(wù)常見錯誤

    綜合架構(gòu): 全網(wǎng)備份數(shù)據(jù)項目

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容