延時任務at
1.at指令用法:
at now+5min|時間
>指令
>Ctrl+d
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5YDN4ATOwUTM2ATNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
at 03:19
> reboot
> ctrl+d
定時重新開機
at -l | atq #檢視未執行的延時任務
atrm ip | at -d ip #終止延時任務
at -M
##延時任務有輸出不産生郵件,退出郵件使用q
at -c ip
##檢視延時任務的内容
at -m
##延時任務無輸出産生郵件
##檢視郵件内容,在/var/spool/mail/root/
at -f filename
##将檔案内容中的指令作為延時任務的動作
2.黑名單
/etc/at.deny
at指令黑名單配置檔案
vim /etc/at.deny
student
将student使用者寫入黑名單,student不可以使用at指令
3.白名單
touch /etc/at.allow
建立at指令的白名單配置檔案
白名單出現,黑名單失效,白名單以外的使用者都不能使用at(root可以)
vim /etc/at.allow
student
白名單中寫入student使用者,其他使用者不可以使用at 延時任務,root可以
定時任務cron
cron由crond.service提供
1.設定方式
(1)指令方式
crontab -u -e #參數可以不寫
分鐘 小時 天 月 周 事件
58 06 * * * rm -rf /mnt/* ##每天的06:58執行rm -rf /mnt/*
58 06 1,15 * * rm -rf /mnt/* ##每月1日和15日的06:58執行rm -rf /mnt/*
58 06 1-15 * * rm -rf /mnt/* ##每月1日至15日的06:58執行rm -rf /mnt/*
58 06 1,15 3 * rm -rf /mnt/* ##3月1日、15日的06:58執行rm -rf /mnt/*
58 06 1,15 3 3 rm -rf /mnt/* ##3月1日、15日的06:58和3月的每個周三的06:58執行rm -rf /mnt/*
\*/2 06-17 * * 1-5 rm -rf /mnt/* ##周一到周五的每天早上6點至下午的5點之間每隔2分鐘執行rm -fr /mnt/*事件
發起方式1
crontab
-e ##編輯定期任務
-l ##顯示定期任務
-r ##删除定期任務
crontab格式
分鐘 小時 天 月 周
分鐘/數字 ##每隔幾分鐘,以此類推,小時,天,月,周都适用
(2)檔案方式定義crontab
以某使用者身份執行cron,檔案名稱必須和使用者名稱一緻
vim /var/spool/cron/使用者名
分 時 日 月 周 動作
設定多個使用者身份執行cron
vim /etc/cron.d/檔案
分 時 日 月 周 使用者 動作
編輯事件
crontab -e #編輯事件
-l ##列出事件
-r ##删除事件
-r -i ##删除任務時會詢問是否删除,輸入y則删除
-r -u student ##以student使用者執行事件
4.crontab使用限制
黑名單
/etc/cron.deny ##預設存在系統中,在此清單中出現的使用者被禁止
test ##禁止test執行crontab
白名單
touch /etc/cron.allow ##預設在系統中不存在,
##但是當此檔案存在時,
###deny檔案失效,
#并且所有普通使用者能執行crontab的權力被禁止,隻有在此檔案中的使用者可以執行crontab
student ##系統中的普通使用者隻有student可以使用crontab
5.系統臨時檔案
vim /usr/lib/tmpfiles.d/xxx.conf
編寫管理臨時檔案的配置檔案
類型 名稱 權限 所有人 所有組 存在時間(s m d)
d /mnt/haha 777 root root 10s
| | | | | |
目錄 存放臨時檔案的目錄 目錄的權限 目錄所屬使用者 所屬組 清理目錄内檔案的間隔時間
systemd-tmpfiles --create /usr/lib/tmpfiles.d/xxx.conf ##執行管理臨時檔案配置檔案
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/xxx.conf ##清理超過配置檔案設定時間的文
重新打開一個視窗,進行監控: watch -n 1 ls -lR /mnt/
在原視窗touch /mnt/test,10s之後執行systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*,會發現/mnt/test不見了。