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命令用於設定週期性被執行的指令
定時任務的發起方式
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 //清除存在時間超過設定的檔案存在時間的臨時檔案,
如果檔案存在的時間小於設定的存在時間(剛剛建立),則這次刪除操作不會刪除該檔案