系統定時任務及延時任務
一、延遲任務
這裡使用at命令:
at now+1min ##從現在起過1分鐘
at 09:10 ##指定09:10執行任務
回車後輸入任務命令 ctrl+d 任務發起 然後
at -l 加任務號 ###檢視任務
-c 加任務號 ###檢視任務詳情
-r ###刪除任務
##/etc/at.deny黑名單 假如westos在u黑名單裡,則切換到westos後不能用at,而student可以
##/etc/at.allow白名單,一開始沒有,需要建立 如果當我使用tuoch /etc/at.allow,在/etc/at.allow裡的是白名單,出現後所有使用者都再黑名單裡,此時黑名單失效
試驗:使用watch監控root使用者的/mnt目錄裡的檔案,先建立10個westos檔案
任務被執行後任務就檢視不到了:
vim /etc/at.deny
在裡邊編輯:
westos使用者就不能正常使用at命令了,會有如下提醒:
既然有黑名單,也就有白名單,白名單不是一開始存在在/etc裡面的,所以要先建立:
mkdir /etc/at.allow
注意:白名單建立後,黑名單相對於白名單就失效了。
二、定時任務
檢視crond服務是否開啟;
systemctl status crond.service
在student的/mnt目錄下里建立westos{1..10}
crontab -u student -e ##以student的身份建立一個定時任務
開啟以後:
* * * * *
分 時 (幾)日 (幾)月 周(幾)
1,10(1和10)
1-30(1到30)
來編輯要執行的具體日期,並在後面寫上具體的任務,比如:
* * * * * rm -rf /mnt/* ##每隔三分鐘刪除/mnt下的全部
執行的任務存放在/var/spool/cron/student(student是建立任務的使用者)
使用
cat /var/spool/cron/student
可以看到:
crontab -u student -l ##檢視任務
crontab -u student -r ##刪除任務
##/etc/cron.deny黑名單
##/etc/cron.allow白名單,同樣需要建立,建立後黑名單失效,不在白名單裡的使用者全部使用不了crontab的命令
但是在root下使用crontab -u student -e 仍然可以編輯任務命令
刪除/etc/cron.allow就可以正常使用黑名單了
三、系統級定時的設定
系統定時設定在/etc/cron.d/裡面, 在這裡建立一個westos 比如:
vim /etc/cron.d/westos
開啟後編輯:
* * * * * root rm -rf /mnt/*
不想使用westos裡的定時功能刪除westos就可以 cat westos可以檢視這個任務詳情; anacron可以檢測某命令在系統關機後沒來得及執行,使用這個命令可以在開機後執行一次。
四、臨時檔案的定時清理
臨時檔案不能隨便清理,要保證被清理的是不需要的 所以設定了生存週期: 在/usr/lib/tmpfiles.d/ 建立westos:vim westos.conf 在裡面編輯要執行的命令,比如:
d /mnt/westos 777 root root 8s ##每隔8s刪除一次/mnt/下的westos檔案
使用watch -n 1 “ls -lR /mnt”
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##建立一個westos檔案
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清空westos裡的內容
從監控上看到:
先提前建立檔案:
touch /mnt/westos/file
使用下面的命令執行8s清除westos下的內容:
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
可以從監控看到檔案沒有了。 使用cat /usr/lib/tmpfiles.d/westos.conf可以看到命令詳細情況。