Linux系統中延時任務及定時任務
Linux系統中延時任務及定時任務
1.系統延時任務
[root@node4 tftpboot]# at 13:33 ##設定任務執行時間
warning: commands will be executed using /bin/sh
at> touch /mnt/westosfile{1..3} ##任務動作
at> <EOT> ##用 ctrl+D 發起任務
job 1 at Sun Nov 8 13:33:00 2020
at -r 任務號 ##取消任務執行
[root@node4 tftpboot]# at -l ##檢視任務列表
1 Sun Nov 8 13:33:00 2020 a root
[root@node4 tftpboot]# at -c 1 ##檢視任務內容
[root@node4 tftpboot]# dnf search mailx
[root@node4 tftpboot]# dnf install mailx.x86_64 -y
[root@node4 tftpboot]# dnf search postfix
[root@node4 tftpboot]# dnf install postfix.x86_64 -y
[root@node4 tftpboot]# systemctl enable --now postfix
[root@node4 tftpboot]# at now+1min ##延時 1 分鐘
[root@node4 tftpboot]# at 13:42
warning: commands will be executed using /bin/sh
at> date
at> <EOT>
job 4 at Sun Nov 8 13:42:00 2020
[root@node4 tftpboot] mail -u root ##當任務有輸出時,輸出會以郵件的型是傳送給 at 任務的發起者,檢視超級使用者郵件
& 1 ##檢視第一封郵件
& headers
> 1 root Sun Nov 8 13:42 14/496 "Output from your job "
& delete 1
& headers
No applicable messages
& q ##退出
> /var/spool/mail/root ##清空郵件
注意:當任務有輸出時,輸出會以郵件的型是傳送給 at 任務的發起者
例如使用date命令檢視時間時,當通過at指定date任務,該任務的輸出將會以郵件的形式傳送給該任務的發起者,而不會直接顯示,需要檢視相關郵件來獲得其輸出。另外,如果需要檢視郵件,則需要先安裝mailx和postfix服務,並開啟postfix服務。
2.at 任務的黑白名單
[root@node4 tftpboot]# cd
[root@node4 ~]# su - westos
[westos@node4 ~]$ at now+1min
[root@node4 ~]# vim /etc/at.deny
[root@node4 ~]# su - westos
[westos@node4 ~]$ at now+1min
You do not have permission to use at.
[westos@node4 ~]$ logout
[root@node4 ~]# vim /etc/at.allow
[root@node4 ~]# su - westos
[westos@node4 ~]$ at now+1min
warning: commands will be executed using /bin/sh
at> ^C
[westos@node4 ~]$ logout
[root@node4 etc]# cat /etc/at.deny
westos
####系統中預設存在,在此檔案中出現的使用者不能執行 at
[root@node4 etc]# cat /etc/at.allow
westos
##系統中預設不存在,當檔案出現,普通使用者不能執行 at
##只有在白單中的使用者可以,並且/etc/at.deny 失效
注意:at.deny檔案在系統中是預設存在的,只是初始狀態下為空,即沒有指定哪些使用者不能使用at,如果將整個檔案刪除,將會導致使用者使用at時產生許可權錯誤。
3.系統定時任務
1.crontab 時間表示方式
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sunday, or use names)
* * * * * ##每分鐘
*/2 * * * * ##每兩分鐘
*/2 09-17 * * * ##早 7-晚 5 每兩分鐘
*/2 */2 * * * ##每隔 2 小時每兩分鐘
*/2 09-17 3,5 1 5
*/2 09-17 * * 5 ##每週週五早 9 晚 5
2.系統控制 crontab 的服務
crond.service ##當程式開啟時定時任務生效
3.crontab命令
crontab -e -u
crontab -l -u
crontab -r -u
[root@node4 ~]# crontab -e -u root ##建立
38 14 * * * touch /mnt/file{1..10} ##14點38分 分 小時 天 月 周
[root@node4 ~]# crontab -u root -l ##檢視使用者級
38 14 * * * touch /mnt/file{1..10}
[root@node4 ~]# cd /var/spool/cron/
[root@node4 cron]# ls
root
[root@node4 cron]# cat root
38 14 * * * touch /mnt/file{1..10}
[root@node4 cron]# crontab -r -u root ##取消超級使用者的任務
[root@node4 cron]# cat root
cat: root: No such file or directory
4.檔案方式設定定時任務
vim /etc/cron.d/file ## cron.d是系統級
* * * * * username action
* * * * * root rm -fr /mnt/*
注意:採用系統級設定時,使用crontab -l無法檢視系統級的crontab任務
5.crontab 的黑白名單
/etc/cron.deny ##系統中預設存在,在此檔案中出現的使用者不能執行 crontab
/etc/cron.allow ##系統中預設不存在,當檔案出現,普通使用者不能執行 crontab
##只有在名單中的使用者可以,並且/etc/at.deny 失效
##這兩個名單都不會影響/etc/cron.d/目錄中定時任務的發起及執行
[root@node4 Desktop]# vim /etc/cron.deny ##系統中預設存在,在此檔案中出現的使用者不能執行 crontab
[root@node4 Desktop]# su - westos1
[westos1@node4 ~]$ crontab -e
You (westos1) are not allowed to use this program (crontab)
[westos1@node4 ~]$ logout
[root@node4 Desktop]# su - westos
[westos@node4 ~]$ crontab -e
no crontab for westos - using an empty one
[westos@node4 ~]$ logout
[root@node4 Desktop]# touch /etc/cron.allow ##只有在名單中的使用者可以,並且/etc/at.deny 失效
[root@node4 Desktop]# vim /etc/cron.allow ##系統中預設不存在,當檔案出現,普通使用者不能執行 crontab
[root@node4 Desktop]# su - westos1
[westos1@node4 ~]$ crontab -e
no crontab for westos1 - using an empty one
crontab: installing new crontab
[root@localhost cron.d]# su - westos 只有在白名單裡的可以
[westos@localhost ~]$ crontab -e
You (westos) are not allowed to use this program (crontab)
See crontab(1) for more information
4.系統中臨時檔案的管理方式
cd /usr/lib/tmpfiles.d/
vim westos.conf
d /mnt/westos 777 root root 8s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
[root@node4 Desktop]# cd /usr/lib/tmpfiles.d/ ## 臨時檔案儲存路徑
[root@node4 tmpfiles.d]# vim westos.conf ##編輯檔案,建立任務
d /mnt/westos/ 777 root root 8s ## 有效期 8s
[root@node4 tmpfiles.d]# systemd-tmpfiles --create /lib/tmpfiles.d/westos.conf ## 建立臨時檔案
[root@node4 tmpfiles.d]# touch /mnt/westos/westosfile1
[root@node4 tmpfiles.d]# touch /mnt/westos/westosfile2
[root@node4 tmpfiles.d]# systemd-tmpfiles --clean /lib/tmpfiles.d/westos.conf ## 清除臨時檔案
注意:設定完臨時檔案的存在週期後在該週期內無法用systemd-tmpfiles --clean命令清楚該檔案
相關文章
- linux系統怎麼新增每天定時任務? linux系統新增定時任務的教程Linux
- 定時任務管理系統
- Linux系統管理之定時任務Linux
- Linux | 定時任務Linux
- Linux 定時任務Linux
- Linux at 定時任務Linux
- Linux定時任務Linux
- Node 系統中定時任務的演化
- 『學了就忘』Linux系統定時任務 — 88、迴圈執行定時任務Linux
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- 定時任務
- Linux crontab 定時任務Linux
- Linux 定時任務(crontab)Linux
- LINUX 定時任務命令Linux
- Linux - crontab(定時任務)Linux
- Linux定時任務系統 Cron 入門(轉)Linux
- 『學了就忘』Linux系統定時任務 — 87、只執行一次的定時任務Linux
- 『學了就忘』Linux系統定時任務 — 89、任務排程工具anacronLinux
- Linux中如何實現定時任務Linux
- 定時任務scheduler
- At 、Crontabl定時任務
- crontab定時任務
- 定時任務管理
- ubuntu定時任務Ubuntu
- schedule 定時任務
- Oracle定時任務Oracle
- laravel定時任務Laravel
- Navicat定時任務
- Java 定時任務Java
- @Scheduled 定時任務
- Js定時任務JS
- mysql 定時任務MySql
- Web定時任務Web
- 定時任務操作
- Laravel使用command在Linux系統中跑定時任務LaravelLinux
- linux定時任務的設定Linux
- linux定時任務cron配置Linux
- Linux 定時任務排程Linux