在生活中,我們的手機鬧鐘就是一個定時任務,鬧鐘響了,你還想睡一會兒,讓它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之後才能被清理,剛創建的文件用此命令
是刪除不了的。