使用at和cron實現任務計劃

qq_42241932發表於2018-08-04

cron被用來排程重複的任務,而at被用來在指定時間內排程一次性的任務。一旦一個作業被提交,at命令將會保留所有當前的環境變數,包括路徑,該作業的所有輸出都將以電子郵件的形式傳送給使用者

系統的延時任務和定時任務

1.延時任務(at)

使用at命令可以在某一指定時間內排程一項一次性作業,at命令後面必須先指定時間,接著指定日期

命令的用法:

at [選項] [時間引數]

at [選項]

選項 選項的含義

-f<指令碼>

所要提交的指令碼或命令
-l 列出當前所有等待執行的作業
-d 清除某個作業,需要提供相應的作業標識(ID)
-m 作業完成後個使用者發郵件
-c<作業標識號> 在命令列上列出的作業標準輸出
-t<時間> 在指定時間提交作業執行,時間格式為[[CC]YY]MMDDhhmm

 時間引數的格式

時間引數 描述
HH:MM 比如04:00代表4:00AM。如果時間已過,他就會在第二天的這一時間執行
Midnight 代表12:00AM(即00:00)
Noon 代表12:00PM(即12:00)
Teatime 代表4:00PM(即16:00)
英文月名 日期 年份 比如“January 15 2018”代表2014年1月15,年份可有可無
MMDDYY、MM/DD/YY或MM.DD.YY 比如“011519”代表2019年1月15號
now+時間 時間以minutes,hours,days或weeks為單位,比如“now +5days”代表命令在5天后的此時此刻執行
[root@localhost ~]# at 11:52    #設定任務執行時間
at> rm -rf /mnt/file*        #任務動作
at> <EOT>  <---> ctrl+d        #用ctrl+d發起任務
job 1 at Tue Jul 31 11:52:00 2018

 

 

[root@localhost ~]# at now+1min    #延時1分鐘
at> echo hello
at> <EOT>
job 2 at Tue Jul 31 11:53:00 2018

at -l        #檢視任務列表
at -c 任務號    #檢視任務內容
at -r 任務號    #取消任務執行
注意:
當任務有輸出時,輸出會以郵件形式傳送給at任務的發起者
mail -u root    #檢視超級使用者的郵件
number    #檢視第幾封郵件
-q    退出
>    /var/spool/mail/root    #清空郵件

2.at命令的執行權力設定

/etc/at.deny            ###使用者黑名單,在此名單中出現的使用者不能執行at命令

 

/etc/at.allow     ###使用者白名單,名單預設不存在,但名單一旦出現,黑名單失效,系統所有使用者預設不能執行at,只有在名單中出                                   現的使用者可以使用at命令

2.定時任務

使用crom實現任務,任務計劃可以通過修改/etc/crontab檔案以及使用crontab命令實現,其結果是一樣的。

發起方式一  crontab命令

使用crontab命令可以建立愛你,修改,檢視以及刪除crontab條目

命令格式:

crontab [選項]

crontab [選項] [檔案]

選項 選項含義
-u<使用者名稱> 使用者名稱,如果使用自己的使用者名稱登陸,就不需要使用該選項
-e 編輯使用者的crontab
-l 列出使用者的crontab中的內容
-r 刪除使用者的crontab
-i 刪除使用者的crontab前進行提示


crontab -u username -e
crontab -u username -r
crontab -u username -l

發起方式二

vim /etc/cron.d/filename

分鐘  小時    天   月   周                         使用者    動作
   *         *       *     *      *                           root    rm -fr /mnt/*        #超級使用者每分鐘清裡一此/mnt

crontab 命令的執行權力設定

/etc/cron.deny         ##使用者黑名單,在此名單中出現的使用者不能執行crontab命令
/etc/cron.allow        ##使用者白名單,名單預設不存在,但名單一旦出現,黑名單失效
                                ##系統所有使用者預設不能執行crontab,只有在名單中出現的使用者可以使用

把westos添在使用者黑名單,此時使用者黑名單裡的使用者不能執行此權力,所以westos只能有讀的權力,相反若是使用者在使用者白名單,就可以執行crontab權力

3.系統臨時檔案的管理

系統中服務在正常執行時會產生臨時檔案

/usr/lib/tmpfiles.d/*.conf        ##系統中臨時檔案的配置

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*	##執行臨時檔案配置
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*	##清理臨時檔案

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章