一、延遲任務(一次性的)
1. 延遲任務的設定
- at? +時間 :具體時間設定延遲任務
設定成功后“ ctrl + d "發(fā)起任務," ctrl + c " 取消。
- at? -l? :查看延遲任務
- at? -c? 1 :查看序號為1 的延遲任務的內(nèi)容
- at? -r? 1 :取消序號為1 的延遲任務
- at? now+1min : 設定1分鐘后的延遲任務
------------------------------------------------------實驗------------------------------------------------------
準備虛擬機aa,打開兩個窗口,一個做監(jiān)控?。?/strong>
# watch -n 1 ls -l /mnt/ :監(jiān)控命令
在/mnt/下建立10個新文件
?# at 16:59:在16:50設定延遲任務
at> rm -fr /mnt/* :清空/mnt/的文件
at> <EOT>:發(fā)起任務
# at -l : 查看延遲任務
?# at -c 5 : 查看延遲任務的具體內(nèi)容
?# at? -r 7 :取消延遲任務
?2. at 任務的黑白名單
默認情況下,所有用戶都可以執(zhí)行延遲任務!
- /etc/at.deny:默認存在,再此文件中出現(xiàn)的用戶不能執(zhí)行at
- /etc/at.allow:默認不存在,當文件出現(xiàn),/etc/at.deny失效;只有文件里的用戶可以執(zhí)行at
----------------------------------------------------------------實驗-------------------------------------------------------
- /etc/at.deny:默認存在,
- /etc/at.allow:默認不存在
# man 5 at.deny :查詢文件幫助
發(fā)現(xiàn):如果at.allow文件存在就不再查看deny文件,如果allow文件不存在就查看deny文件!
?默認情況下,所有用戶都可以執(zhí)行at。
?編輯黑名單,將用戶westos寫進黑名單,發(fā)現(xiàn)westos無法執(zhí)行at任務!!
?建立白名單,白名單一旦建立,黑名單就會失效!只允許白名單內(nèi)的用戶和root用戶執(zhí)行at !!!白名單為空則只允許root用戶執(zhí)行!
二、定時任務的設定(永久的)
1. 用戶定時任務的設定
(1)保存路徑及系統(tǒng)服務
-
/var/spool/cron/username : 任務保存文件
-
crond.service :系統(tǒng)控制crontab的服務
(2)crontab 時間表示方式
- * * * * * :分別代表 分鐘? 小時? 天 月 周,此時代表每分鐘
- */2 * * * * :每兩分鐘
- */2 09-17 3,5 1 5 :1月的3號和5號,第五周的9點--17點,每隔2分鐘執(zhí)行一次!
(3) crontab 基本命令
- crontab?? -u? root/westos ? -e : 編輯root/westos用戶的定時任務
- crontab?? -u?? root/westos ?? -l:查看root/westos用戶的定時任務
- crontab?? -u ?? root/westos? ? -r:刪除root/westos用戶的定時任務
----------------------------------------------------實驗-------------------------------------------------------
編輯定時任務的界面如下:
編輯完保存即可!!
?(4)crontab的黑白名單
crontab的黑白名單與at的黑白名單類似,對root用戶和系統(tǒng)級的定時無效!
- /etc/cron.deny : 黑名單,系統(tǒng)中默認存在,此文件中出現(xiàn)的用戶不能執(zhí)行crontab
- /etc/cron.allow : 白名單,系統(tǒng)中默認不存在,當文件存在,/etc/cron.deny失效!只有在文件里的用戶及root可以執(zhí)行crontab
----------------------------------------------------------------實驗-------------------------------------------------------------
黑名單默認存在,白名單默認不存在!
默認情況下所有用戶都可以執(zhí)行crontab定時任務!
將westos用戶寫進黑名單,發(fā)現(xiàn)只有黑名單的westos用戶無法使用crontab!
?創(chuàng)建白名單,將westos用戶寫進白名單!
當白名單建立時,黑名單會失效!因此在白名單的用戶westos及root用戶才可以使用crontab
?ps:做完實驗,一切恢復原樣!?。?/strong>
三、郵件系統(tǒng)的管理
1. 處理任務輸出
(1)日志產(chǎn)生自動發(fā)送郵件
當日志產(chǎn)生時,系統(tǒng)會自動向執(zhí)行者發(fā)送一封郵件,前提是
- 安裝postfix軟件----發(fā)送郵件的
- 安裝mail軟件-----查看郵件的
- 開啟postfix服務
- 重新開啟crond服務
--------------------------------------------------------------實驗----------------------------------
#? dnf install postfix mailx :安裝郵件軟件
# systemctl enable --now postfix.service:開啟postfix服務
此時寫入定時任務查看實驗效果??!
* * * * *?? /bin/date
利用mail命令卻發(fā)現(xiàn)沒有郵件!!
?
?這是因為crond服務沒有時別到postfix,因此重新開啟crond服務即可?。?/strong>
# systemctl restart crond.service:重新開啟crond服務
這時用mail進行測試,發(fā)現(xiàn)已經(jīng)有郵件!
或者可以利用# cat /var/log/cron 查看是否有郵件
以上郵件全部發(fā)送給root用戶,這是可以設置的。
(2) 修改郵件收件人
- 編輯 /etc/crontab文件? ps:修改完不會立即生效
- 設置定時任務前添加 MAILTO=' ' ,會立即生效!
-----------------------------------------------實驗-----------------------------------------
首先清空郵件,保證實驗效果!
?編輯 /etc/crontab文件,修改郵件收件人!
改為空,即不發(fā)送郵件!
?此時進行測試,發(fā)現(xiàn)root用戶仍然會收到郵件!
這是因為該文件系統(tǒng)開機已經(jīng)讀取過,修改不會立即生效!
?設置定時任務前添加 MAILTO=' ' ,會立即生效!
(3) 永久關閉郵件發(fā)送功能
- 編輯? /etc/sysconfig/crond : CRONDARGS=-m off ,關閉郵件發(fā)送功能
修改后要重啟服務?。?/strong>
利用mail查看,發(fā)現(xiàn)已經(jīng)沒有郵件!
?查看郵件是否執(zhí)行:
# cat?? /var/log/cron
發(fā)現(xiàn)已經(jīng)執(zhí)行,但是沒有發(fā)送郵件,說明郵件發(fā)送功能關閉成功!
?以上只是屏蔽了郵件,但是任務輸出仍然顯示在 /var/log/cron 中,如果所有輸出都不想顯示怎麼辦?
(4)重定向任務輸出
在編輯定時任務時,直接重定向輸出,屏蔽即可!
- * * * * * /bin/date?? &> ? /dev/null
ps:測試仍有輸出,不知道為什么..........
?四、系統(tǒng)級cron的設定
1. 基礎設定
系統(tǒng)及cron的設定只能root用戶執(zhí)行!一般用來管理臨時文件!
- /etc/cron.d :設定目錄
-----------------------------------------------------------實驗----------------------------------------------
建立腳本放在對應目錄,即可設定定時任務!!
?自己設定定時任務
# cd?? /etc/cron.d:在該目錄下建立腳本
?2. 優(yōu)化臨時文件存儲
臨時文件是有周期的,如果周期內(nèi)直接用rm 清理臨時文件不合適
因此可以用cron優(yōu)化臨時文件!
(1)臨時文件的建立和清理
- /lib/tmpfiles.d/:臨時文件目錄
- systemd-tmpfiles? --create?? /lib/tmpfiles.d/westos.conf:臨時文件生效
- systemd-tmpfiles --clean? /lib/tmpfiles.d/westos.conf:清理臨時文件
首先進入目錄,里面都是臨時文件
?自己建立一個臨時目錄:westos.conf
設定該目錄的周期是5s
# vim?? /lib/tmpfiles.d/westos.conf
?此時,用#? watch -n 1 ls -lR /mnt/ 進行監(jiān)控發(fā)現(xiàn)目錄還沒建立,這是因為臨時文件沒有生效!
# systemd-tmpfiles --create?? /lib/tmpfiles.d/westos.conf:使臨時文件生效!
此時監(jiān)控發(fā)現(xiàn)該目錄已建立!
此時在該目錄下建立文件, 建立后清除
# systemd-tmpfiles?? --clean ? /lib/tmpfiles.d/westos.conf
發(fā)現(xiàn)file2 file3 未清除,這是因為文件從建立到清除沒有5s,所有暫時不清楚!
?當超過5s后,再次執(zhí)行清除命令,文件都以清理!
綜上,該命令清理臨時文件很合適??!因此,可以將該命令與定時任務相結合,就可以優(yōu)化臨時文件存儲!
(2) 利用cron優(yōu)化臨時文件存儲
將以上清理命令寫進cron定時
# cd /etc/cron.d
# vim westos
01 * * * * root systemd-tmpfiles? --clean? /lib/tmpfiles.d/*.conf:每小時清理一次所有的臨時文件
文章來源:http://www.zghlxwxcb.cn/news/detail-566080.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-566080.html
到了這里,關于復習之系統(tǒng)定時任務及延遲任務的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!