定時任務是永久的
延時任務是一次性的
前期準備:通過指令:watch -n 1 ‘ls -l /mnt‘ 監控/mnt目錄內的情況
1.系統的延時任務
1)at 時間 ##設定任務執行時間
at> xxxx ##任務動作
at> ##用ctrl+D發起任務
示例:
在08:05時在/mnt目錄下創建file1-3
2) at now+1min ##延時一分鐘
at>
at>
示例:延時一分鐘刪除目錄/mnt下所有文件
at -l | ##查看任務列表 |
---|---|
at -c 任務號 | ##查看任務內容 |
at -r 任務號 | ##取消任務執行 |
注意:
當任務有輸出時,輸出會以由檢的形式發送給at任務的發起者
mail -u root ##查看超級用戶郵件
1 ##查看第一封郵件
q ##退出
示例:設定延時任務在不存在的目錄/hello下創建文件file
[root@server_sshd ~]# > /var/spool/mail/root ##清空郵件
[root@server_sshd ~]# at now+1min
at> touch /hello/file
at>
當任務執行完畢後
通過指令 mail -u root 查看root用戶郵件,可以看到有一封郵件
&1 #查看編號爲1的郵件內容
最後一行
touch: cannot touch ‘/hello/file’: No such file or directory 即爲郵件內容
& q ##退出
/etc/at.deny ##at命令黑名單,系統默認存在,在此文件中出現的用戶不能執行at命令
/etc/at.allow ##at命令白名單,系統中默認不存在,該文件建立後除root用戶以外,普通用戶不能執行at命令,只有在名單中的用戶可以使用,並且at命令黑名單失效
3.系統定時任務
1)crontab 時間表示方式
* | * | * | * | * |
---|---|---|---|---|
分 | 時 | 天 | 月 | 周 |
* * * * * | ##每分鐘 |
---|---|
*/2 * * * * | ##每兩分鐘 |
*/2 09-17 * * * | ##早9-晚5每兩分鐘,“/“爲每隔多久,“-“爲從多少到多少 |
*/2 */2 * * * | ##每隔兩小時每兩分鐘 |
*/2 09-17 3,5 1 5 | ##1月3號和5號及每週五早9-晚5每兩分鐘,“,“爲幾和幾 |
*/2 09-17 * * 5 | ##每週週五早9晚5 |
2)系統控制crontab的服務
crond.service ##當程序開啓時定時任務生效
3)crontab
crontab -e -u 用戶名 | ##編輯定時任務 |
---|---|
crontab -l -u 用戶名 | ##列出該用戶所有定時任務 |
crontab -r -u 用戶名 | ## 刪除該用戶所有定時任務 |
-
crontab -e -u root ##編輯root用戶定時任務
-
crontab -l -u root ##列出root用戶所有定時任務
-
crontab -r -u root ## 刪除root用戶所有定時任務
4)文件方式設定定時任務
vim /etc/cron.d/file
* | * | * | * | * | username | action |
---|---|---|---|---|---|---|
* | * | * | * | * | root | rm -rf /mnt/* |
設置完成後,系統將會定時執行設定的定時任務
5)crontab的黑白名單
/etc/cron.deny ##系統中默認存在,在此文件中出現的用戶不能執行crontab
/etc/cron.allow ##系統中默認不存在,當文件出現,普通用戶不能執行crontab,只有在名單中的用戶可以,並且/etc/cron.allow失效
注意:
這兩個名單都不會影響/etc/cron.d/目錄中定時任務的發起及執行
4.系統中臨時文件的管理方式
cd /usr/lib/tmpfiles.d
vim westos.conf ##編輯設置文件
d | /mnt/westos | 1777 | root | root | 8s |
---|---|---|---|---|---|
文件類型 | 文件路徑 | 文件權限 | 所有人 | 所有組 | 有效時間 |
systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf ##創建臨時文件夾/westos
在westos目錄下創建文件file1,file2
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf
執行清除臨時文件命令,但是由於該文件創立時間沒有超過8s,所以無法清除
超過8s後再次執行清除命令,文件便可以被清除掉了