Linux任務計劃

at任務

單次定時執行任務

at命令:at [option] TIME

u 常用選項:

-V 顯示版本信息:

-l: 列出指定隊列中等待運行的作業;相當於atq

-d: 刪除指定的作業;相當於atrm

-c: 查看具體作業任務

-f /path/from/somefile:從指定的文件中讀取任務

-m:當任務被完成之後,將給用戶發送郵件,即使沒有標準輸出

u 注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶

u TIME:定義出什麼時候進行 at 這項任務的時間

HH:MM [YYYY-mm-dd]

noon, midnight, teatime4pm

tomorrow

now+#{minutes,hours,days, OR weeks}

u執行方式:

1)交互式 2)輸入重定向 3at –f 文件

uat隊列存放在/var/spool/at目錄中

u/etc/at.{allow,deny}控制用戶是否能執行at任務

白名單:/etc/at.allow 默認不存在,只有該文件中的用戶才能執行at命令

黑名單:/etc/at.deny 默認存在,拒絕該文件中用戶執行at命令,而沒有在

at.deny 文件中的使用者則可執行

如果兩個文件都不存在,只有 root 可以執行 at 命令

例如,

                 taskplan1.png

 

 

週期性計劃任務cron

 

命令及程序包

            taskplan2.png

 

確保服務運行:

      CentOS 7: systemctl status crond

      CentOS 6: service crond status

         taskplan3.png

 

系統cron任務:系統維護作業

/etc/crontab文件中設置

         taskplan4.png

其中本身帶有配置信息的使用規則:

第一位*代表每分鐘,可取值0-59,例如取值5則表示每小時的05分開始執行

第二位*代表每小時,可取值0-23,例如取值1則表示每天的1點(AM

第三位*代表每月的哪一號,可取值1-31

第四位*代表一年的哪一月份,可取值1-12

第五位*代表星期幾,可取值(0-6)星期天是0

如果所在位數是*則代表,每xx時間執行,所有都是*則代表每分鐘執行

 

例如,

下圖第一個任務表示 65145分已root身份運行free -m >>  /data/memstat.log

第二個任務表示每個星期二的145分已root身份運行free -m >>  /data/memstat.log

                taskplan5.png 

 

用戶cron任務:

因爲這裏是root執行crontab -e所以這裏表示root用戶每10分鐘執行一次後面的任務

taskplan6.png

crontab命令定義

每個用戶都有專用的cron任務文件: /var/spool/cron/USERNAME

crontab命令: crontab [-u user] [-l | -r | -e] [-i] -l: 列出所有任務

      -e: 編輯任務

      -r: 移除所有任務

      -i:同-r一同使用,以交互式模式移除指定任務

      -u user: root可運行,指定用戶管理cron任務

控制用戶執行計劃任務: /etc/cron.{allow,deny}

    crontab -e 命令


         at和crontab的區別         

 


atcrontab

一次性作業使用重複性作業使用crontab Create
Createat timecrontab   -e
Listat -lcrontab   -l
Detailsat -c jobnumN/A
Removeat -d jobnumcrontab   -r
EditN/Acrontab   -e


其他注意事項:

    沒有被重定向的輸出會被郵寄給用戶

    根用戶能夠修改其它用戶的作業

         crontab的日誌信息:/var/log/cron*

 


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