一、系統的延時
- 是臨時的。對系統做的任務指定一個時間點。發起的命令是at
at 時間點(now+1min) ## 設定任務實行時間
at> 執行命令 ## 任務的動作
at><EOT> ## 用ctrl+D發起任務
- at命令常用參數:
at -l 查看列表
at -c 任務號 查看任務內容
at -r 任務號 取消任務執行
注意:任務有輸出的時候,輸出會以郵件的形式發送給at任務的發起者。在超級用戶下查看郵件命令:mail(郵件在/var/mail/root下)。
- 使用: mail -u root 查看root用戶的郵件
按n表示查看第n封的內容
按q表示退出
> /var/spool/mail/root 清空郵件
二、設置延時任務的黑白名單
/etc/at.deny 系統中默認存在,在此文件中的用戶不能執行at
/etc/at.allow 系統中默認不存在;當存在時,普通用戶不能執行at命令,且只有在該文件中用戶可以執行
在root用戶下設置黑名單:vim /etc/at.deny 添加 student ##此時在student用戶下,不可以執行延時任務的設定
在root用戶下設置白名單:/etc/at.allow (該文件默認是不存在的)若建立出來,則普通用戶不能執行at命令;除了超級用戶,只有在at.allow里面的用戶才能使用at命令。
注意:白名單出現,黑名單則會失效!
三、系統定時任務設定
該命令是永久的。
crond.service ## 當該服務開啟時,控制定時任務生效(不會執行錯誤時間點的任務)
【2】crontab相關命令
- 使用命令: crontab -e -u root 對文件編輯,以下結果表示每分鍾執行一次file1的創建 (-e 直接設定 -u 指定發起的用戶 無-u默認當前用戶)
- 使用命令:crontab -l -u root 查看該用戶文件內容(與cat /var/spool/cron/root結果一樣)
- 使用命令:crontab -r -u root 對該用戶的文件內容的刪除
【3】crontab 時間表示方式:
* * * * * rm -rf /mnt/* ## 表示每分鍾執行一次
* /2 * * * * ## 表示每2分鍾執行一次
* /2 09-17 * * * ##上午九點到下午的五點每兩分鍾執行一次
* /2 */2 * * * ## 每個兩小時每兩分鍾
* /2 09-17 * * 5 ## 【2】 該【1】條件的基礎上加上只在周五做
* /2 09-17 * 1 5 ## 每周周五和每月一號的早9晚5沒兩分鍾執行一次
* /2 09-17 3,5 1 5 ##表示3月和五月每周周五和3.1及5.1的上午9點到下午5點,且每2分鍾一次
注釋: man crontab 命令使用查看
man 5 crontab 查看該文件
- 根目錄下的anacron用來監控並執行漏過的定時任務(crond.service默認是開機自啟動)
【3】文件的方式設定
1)交互式:
vim /etc/cron.d/filename ## 文件名自己取
* * * * * username action
實例:每分鍾使用root用戶執行/mnt/test/目錄下文件的刪除
2)非交互式:
[root@foundation77 cron.d]# touch westos
[root@foundation77 cron.d]# cat westos
* * * * * root touch /mnt/test/xniu
【4】使用crontab命令的執行限定
/etc/cron.deny 系統中默認存在,在此文件中的用戶不能執行crontab
/etc/cron.allow 系統中默認不存在;當存在時,普通用戶不能執行crontab命令,且只有在該文件中用戶可以執行
注意:這兩個名單不會影響/etc/cron.d/目錄中定時任務的發起及執行
示例:
1)修改/etc/cron.deny 文件,把student添加進去
2)修改/etc/cron.allow文件為空
3)使用 vim /etc/cron.b/westos,對內容進行修改
[root@foundation77 cron.d]# ll /home/student/
-rw-r--r--. 1 student student 0 Aug 1 23:58 hello
四、臨時文件的管理
【1】臨時文件,顧名思義為當一個程序運行時,臨時需要的文件。
cd /usr/lib/tmpfiles.d/
vim westos.conf
d /mnt/westos 777 root root 8s ## 各參數分別表示:目錄形式 目錄名 權限 用戶 組用戶 清理的時長
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ## 建立westos.conf里面的文件
systemd-tmpfiles --clean /usr/lib/temfiles.d/* ## 在時長到達后,執行該命令會對臨時文件進行刪除
【2】示例:
[root@foundation77 cron.d]# cd /usr/lib/tmpfiles.d/
create_all.sh software test1 vm_kuaizhao.sh
creat_vm.sh test test.xml vm_reset.sh
file1 file6
[root@foundation77 tmpfiles.d]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##執行該命令的時候,時間要超過8s
[root@foundation77 tmpfiles.d]# ls /mnt/test1/