1. 程式人生 > >計劃任務:at和crontab

計劃任務:at和crontab

tro 發送郵件 系統 .com span 案例 vim linux 服務器

一、概述

  作為一名運維人員,你經常需要將某些命令或腳本放入計劃任務中去執行。例如,服務器在白天的訪問量一般較大,而服務器在承受巨大訪問壓力的同時對其進行全備份是不合適的,這時候就可以考慮將備份工作放入系統計劃任務,這樣系統就可以在夜間訪問量小的時候自動執行備份任務。

  Linux中提供兩種計劃任務:(1)一次性at計劃任務  (2)可以周期性執行的cron計劃任務

二、at一次性計劃任務

  使用at制定一次性計劃任務前要確保atd服務是開啟的,否則計劃任務不會被執行,使用systemctl start atd開啟服務,並使用systemctl enable atd確保該服務開機啟動。

技術分享圖片

  2.1at命令用法

    -m   當計劃任務執行結束後發送郵件給用戶

    -l    查看用戶計劃任務

    -d    刪除用戶計劃任務

    -c    查看at計劃任務具體內容

    at命令時間格式:(1)at  小時 :分鐘 #默認代表當天時間  (2)at 4pm + 3days #代表3天後的下午4點執行計劃任務  

            (3)at 12:00 2019-12-12 #指定年月日和日期的計劃任務

  2.2at案例

  #指定在21:40執行計劃任務,既在/目錄新建一個test.txt文件並寫入數據hello world。可以輸入多條命令,輸入完畢後按Ctrl+D快捷鍵保存並退出。

技術分享圖片

  #執行打包計劃任務

技術分享圖片

  #查看、刪除計劃任務

技術分享圖片

技術分享圖片

三、cron周期性計劃任務

  使用cron制訂計劃任務前需要確保crond服務是開啟的,否則計劃不會被執行,使用systemctl start crond開啟服務,並使用systemctl enable crond確保該服務開啟啟動。

技術分享圖片

  3.1crontab命令用法  

    -u  指定計劃任務的用戶,默認為當前用戶
    -l  查看計劃任務
    -r  刪除計劃任務
    -e  編輯計劃任務
    -i  使用-r刪除計劃任務時,要求用戶進行確認

    計劃任務文件格式:分-時-日-月-星期-命令

             分:00~59  時:00~23  日:1~31  月:1~12  星期:0~7

  3.2cron案例

進入cron計劃任務文件編輯界面,操作和vim相同。

#給用戶Alex制定任務計劃:4月19號22點30分執行echo "hello world" > /test/test.txt

#給用戶Alex制定任務計劃:每個星期5的22點30分執行tar -cvzf log.tar.gz /var/log /test

技術分享圖片

其實,CentOS系統自定義了很多計劃任務腳本,分別存放在/etc下的cron.hourly、cron.daily、cron.weekly等目錄中,如果你有腳本需要每天執行,可以直接將腳本存放在cron.daily中,系統會自動幫你每天運行該腳本。

#刪除計劃任務,如果只是某一條或者幾條計劃不想執行,也可以在計劃任務編輯文本中直接用#註釋。

技術分享圖片

計劃任務:at和crontab