延時任務,定時任務crontab以及定時臨時任務的設定
jobs
1.延時:
at 時間 #在該時間要進行操作at now+5min #在5分鐘後要進行
at 16:00
>touch /mnt/file{1..3} #要做的操作
>ctrl+d(按)
at -l #檢視該操作的pid
at -c 3 #檢視3為什麼操作;即要幹什麼
at -r 3 #刪除該操作
vim /etc/at.deny #編輯at配置檔案,指定黑名單使用者不能執行at操作
vim /etc/at.allow #白名單出現,黑名單失效,只有白名單使用者和超級
使用者才能執行at操作
2.定時任務crontab
1.命令列執行定時任務:
[[email protected] ~]# crontab -u root -e
crontab: installing new crontab #建立root使用者定時任務
分鐘(0-60) 小時(0-23) 天(0-31) 月(1-12) 周(0-7)
* * * * * #表每一天的每一分鐘
* 08-17 * * *
#表每天的8:00-17:00的每一分鐘
*/2 08-17 1,15 * 3
#表每隔兩分鐘在每個月的1號,15號,以及每個週三的8:00到17:00
* 08-17 1,15 3-5 3
#表在3-5月的每個週三和1,15號在8:00到17:00每分鐘
[
* * * * * rm -f /mnt/*
*/2 * * * * touch /mnt/file{1..3}
[[email protected] ~]# crontab -u root -r #刪除root執行的定時任務
[[email protected] ~]# vim /etc/cron.deny
linux
[[email protected] ~]# su - linux
[[email protected] ~]$ crontab -e
You (linux) are not allowed to use this program (crontab)
See crontab(1) for more information
[[email protected] ~]# crontab -u linux -e #允許,因為是超級指定linux去執行cron
[[email protected] ~]# vim /etc/cron.allow #cron白名單出現,黑名單失效
[[email protected] ~]# su - linux
[[email protected] ~]$ crontab -e #可以執行
2.在/etc/cron.d/目錄下面執行定時任務
[[email protected] ~]# cd /etc/cron.d#系統級的
[[email protected] cron.d]# ls
0hourly raid-check sysstat unbound-anchor
[[email protected] cron.d]# vim westos
[[email protected] cron.d]# cat westos
01 * * * * root touch /mnt/file{1..5} #每一分鐘的01秒建立/mnt/檔案
#cat /var/spool/cron/root #檢視root使用者要執行的定時任務,使用者級的定時任務目錄
[[email protected] mnt]# cat /var/spool/cron/root
01 * * * * touch /mnt/file{1..5}
3.臨時定時任務的管理
[[email protected] cron.d]# cd /usr/lib/tmpfiles.d/
[[email protected] tmpfiles.d]# systemd-tmpfiles --create /usr/lib/tmpfiles.d/* #建立
[[email protected] tmpfiles.d]# vim westos.conf
d /mnt/westos 1777 root root 8s
型別 名稱 許可權 所有人 所在組 存在時間
#在/mnt/westos目錄下的檔案必須在建立8s之後才能被clean清理
[[email protected] tmpfiles.d]# mkdir /mnt/westos
[[email protected] tmpfiles.d]# touch /mnt/westos/file
[[email protected] tmpfiles.d]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*#清理
[[email protected] tmpfiles.d]# cat westos.conf
d /mnt/westos 1777 root root 8s
[[email protected] tmpfiles.d]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
[[email protected] tmpfiles.d]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
[[email protected] mnt]# watch -n 1 ls -lR /mnt/ -l #監控