1. 程式人生 > >Linux下 的延時任務與定時任務

Linux下 的延時任務與定時任務

一.延時任務

        延時任務是指系統可以指定某一任務在將來的某一特定時間執行。該任務可能是一次備份、對系統的檢查或者特定時間傳送的通知。設定了延時任務後,可以安全登出,該任務會在與 shell 會話斷開連線的情況下執行。

延時任務的設定:

at命令:此命令發起的延時任務都是一次性的

1.at  時間

        鍵入 at 命令列之後 , 按 Enter 鍵入要執行的命令 ,然後在單獨出現的一行中按 Ctrl+d 完成任務。

當設定的時間已經是過去的時間時,系統預設將延時任務的時間改成下一天的此時間

2.at  -l    ##檢視當前的延時任務

由上述執行結果可以看出,當延時任務執行之後,再次使用at -l檢視延時任務,任務就不存在了,故延時任務是一次性的。

3.at  -d  任務號    ###取消還未執行的延時任務   (任務號是指at -l 檢視到任務前面的號碼)

atrm   任務號    ###取消還未執行的延時任務

4.at  now+1min    ##延時一分鐘執行

5.at  -f  filename    ##延時執行檔案中的內容

先建立一個指令碼檔案

vim  linux.sh,編輯檔案

檔案的執行結果為:

給檔案新增延時任務,讓系統在15:00的時候執行檔案的內容

6.at  -m     ##延時命令沒有輸出的情況下發郵件給執行者

   at  -M     ##延時命令沒有輸出的情況不下發郵件給執行者

at命令的執行權力設定

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

2. /etc/at.allow   使用者白名單,白名單預設不存在,需要自己建立

     白名單一旦存在,系統中所有的使用者預設不能執行at命令,只有在白名單中出現的使用者可以執行at命令

二.定時任務(cron服務)

cron是服務名稱,crond是後臺程序,crontab則是定製好的計劃任務表。

cron服務(守護程序)在系統後臺執行,並且會持續地檢查/etc/crontab檔案和/etc/cron.filename目錄。

crontab命令用於設定週期性被執行的指令

。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。定時任務時永久的。

定時任務的發起方式

1.crontab命令方式

  crontab  -u  username  -e        ##編寫定時任務

  crontab  -u  username  -l        ##檢視定時任務

  crontab  -u  username  -r        ##刪除定時任務

2.編輯配置檔案

vim  /etc/cron.d/filename

#    發起任務編寫命令格式:    

              *        *        *         *        *                                                                        #         分鐘   小時    天      月      周    命令(最好用絕對路徑)                                                    #            *         *        *        *        *        root  rm -rf  /mnt/*                   ##root使用者每一分鐘清理一次/mnt

若命令前有六組資訊,則最開始的一組是秒的資訊

若命令前有七組資訊,則最後的一組是年份的資訊

注:在該種方式下設定的定時任務的刪除需要刪除建立的配置檔案

crontab命令的執行權力設定

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

但是如果root使用者指定student執行crontab命令,黑名單預設不起效

2. /etc/cron.allow   使用者白名單,只有在此名單中出現的使用者才能執行crontab命令。白名單預設不存在

三.系統臨時檔案的管理

 系統中服務在正常執行中都會產生臨時檔案  /usr/lib/tmpfiles.d/

vim  /usr/lib/tmpfiles.d/*.conf

   d     /mnt/westos/   777  root root     10s
 檔案 型別 臨時檔案所在的目錄   許可權 擁有者 所屬組

檔案存在的  時間

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*.conf   //執行配置檔案內容

systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*.conf   //清除存在時間超過設定的檔案存在時間的臨時檔案,

如果檔案存在的時間小於設定的存在時間(剛剛建立),則這次刪除操作不會刪除該檔案