linux中的延時定時任務管理

在生活中,我們的手機鬧鐘就是一個定時任務,鬧鐘響了,你還想睡一會兒,讓它5分鐘以後再響,就相當於延時任務,在linux系統中也存在這種功能,讓我們更加合理的安排時間和管理任務。下面簡單介紹一下linux系統中的延時任務,定時任務,以及臨時文件的清理:


1.延時任務:

at + 時間   然後輸入命令動作  crtl + d 退出 就會建立一個延時任務

在08:49準時將文件ok創建出來:

at其他相關命令:

at -l = atq :都爲查看當前任務

atrm =at -d + 指定序號 :爲取消指定任務

at -c + 指定序號 :可查看任務內容

at now+1min :指定延遲一分鐘

at -m :延遲命令沒有輸出時仍然發送郵件給執行者

at -M :延遲命令有輸出但不會發送命令給執行者

at -f file :file表示含有命令任務的文件,-f表示延遲執行文件中的內容

at now+1min -f ok

先編輯文件ok中的命令

輸入命令;

在09:06準時將目錄創建出來

能否執行at命令的黑白名單:

/etc/at.deny :at命名用戶黑名單,加入在這個文件中的用戶,不能使用at命令

/etc/at.allow:at命令用戶白名單,白名單優先級高於黑名單,默認系統中不含有此文件,如果創建出這個文件,

就會立即生效,裏面沒有用戶名單時,所有用戶不能使用at命令


2.定時任務

定時任務程序爲crond,在系統中每分鐘作任務掃描

第一種執行方式:針對單個用戶

crontab -u 用戶 -e   :建立定時任務

crontab -u 用戶 -r    :刪除定時任務

crontab -u 用戶 -l     :查看定時任務

輸入 crontab -u root -e 進入編劇命令:意爲在09:47建立一個文件:

文件PL準時出現

第二種爲針對多個用戶:

需要編輯文件:vim /etc/cron.d/文件名自定義

格式爲:

分鐘   小時   天   月   周      用戶    動作

* * * * *    root  touch   /mnt/ok  :意爲超級用戶每分鐘清理一次PL目錄裏的內容

* * * * *  student  touch /mnt/file :意爲普通用戶每5分鐘在/PL裏創建一個文件

在文件/etc/cron.d/ok中編輯:


然後再打開一個shell監控/mnt目錄,可看見文件的建立;

部分時間表示:

05 * * * * :表示每小時整點過5分鐘

05 02 * * * :表示每天2:05am

30 08 01 * * :表示每月第一天08:30pm

crond命令也和qt命令一樣可以設定用戶的執行權力:

/etc/crond.deny:爲定時任務黑名單,文件中寫入的用戶,不能執行crond命令

/etc/crond.allow:爲定時任務白名單,名單默認不存在,一旦出現,黑名單就失效,系統用戶默認不能

執行crond命令,只有在文件中出現的用戶可以執命令,和上面的qt命令使用限定是一樣的


3.系統中的臨時文件

系統中的服務在運行時會產生臨時文件,編輯文件/usr/lib/tmpfiles.d/*.conf   “*"表示文件名自定義,但一定要

加上.conf

格式爲:  文件類型      文件名稱      文件權限      文件所有人     文件所有組     文件存在時間

       例:       d              /mnt/ok          777                 root               root                   20s


然後運行命令:systemd-tmpfiles --create /use/lib/tmpfiles.d/H.conf   這裏的H爲我自定義取名

可以看到在/mnt下目錄ok已經建立:

然後創建文件touch /mnt/ok/file ,將file當作一個臨時文件


 等待20s後輸入;systemd-tmpfiles --clean /use/lib/tmpfiles.d/H.conf 可將/mnt/ok/下的文件清除,在這裏要注意的是

之前我們在文件存在時間的位置設置的是20s,意爲文件創建20s之後才能被清理,剛創建的文件用此命令

是刪除不了的。                 

 

發佈了51 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章