##系統延遲及定時機制##
學習目标
*計劃定期任務
*延遲任務
1.計劃定期任務
***at 指令
* at 指令可以指定某一任務在将來的特定時間運作。該作業可能是一次備份、對系統的檢查或者特定時間發送的通知。那些需要花費很長時間才可完成的作業正适合 at 指令。僅需使用 at 指令将任務設定為在一分鐘或兩分鐘之後運作。然後您便可以安全登出,因為該任務會在與 shell 會話斷開連接配接的情況下運作
*at 指令必須指定任務應運作的時間。該指定可以是具體時間和 / 或日期 (例如星期一 , 10:00pm 或 7 月 15 日 )。也可以是目前時間的相對時間 (現在時間加上 5 分鐘 ,現在時間加上 3 天或 4:00pm 加上1 周)通過添加其他選項,您可以在任務完成是發送郵件( -m ),或者從檔案中讀取任務( -f 檔案),而無需通過标準輸入進行
*在鍵入 at 指令行之後 ,按 Enter 并繼續鍵入作業中包含的其他指令。任務可由多個指令組成。在完成鍵入要運作的指令時,在單獨出現的一行中按 Ctrl+d 完成任務
2.at指令示例
**[root@serverX ~]# at now +2 min
at> echo "Hello from the at command" > /dev/pts/0
at> <EOT> ##鍵入ctrl+d
job 4 at 2011-08-10 14:05
注 : 在将某一 at 作業設定為運作之後 ,可以通過使用 atq 指令列出作業編号以及次數。若要檢視作業中所包含的指令 ,鍵入 at -c #( # 号為作業編号 )。鍵入 atrm # ( # 号為作業編号 ) 則是删除指定作業。
<a href="https://s3.51cto.com/wyfs02/M01/91/73/wKioL1j2EJeyhHuDAAD1660wenU274.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/91/73/wKioL1j2EJjxs4mbAAGC91ZFCAQ668.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/91/75/wKiom1j2EJiRqrrBAAHj4rPCa-4361.png" target="_blank"></a>
##黑白名單
<a href="https://s3.51cto.com/wyfs02/M01/91/72/wKiom1j1_x7zBPKCAACFg09gUD8694.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/91/72/wKiom1j1_x6iRiwRAAAZVXxtTxk564.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/91/70/wKioL1j1_x_A8iTXAAF8KYxamgw940.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M00/91/72/wKiom1j1_yDyhrQBAACR2hgwMqQ310.png" target="_blank"></a>
3.管理定期任務
*cron 裝置管理必須按計劃定期重複運作的程式。背景程式crond 每分鐘喚醒一次 ,以運作計劃的任何任務使用者使用crontab 指令計劃個人任務。系統管理者可以在系統範圍配置檔案中設定任務
*單個使用者使用稱為 crontab ( cron 表 )的文本檔案登記任務
*crontab -l 列出檔案
*crontab -r 删除檔案
*crontab -e 編輯檔案
*crontab -e 使用預設編輯器是 vi
<a href="https://s3.51cto.com/wyfs02/M02/91/75/wKiom1j2EJmz7rJ5AAClmDYwdUk596.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/91/73/wKioL1j2EJmhkylpAAD-8dxNOFQ803.png" target="_blank"></a>
4.corn時間表示方式
1* 2* 3* 4* 5* command
– 1*----------分鐘
– 2*----------小時
– 3*----------天
– 4*----------月
– 5*----------周
5.時間表示示例
<a href="https://s3.51cto.com/wyfs02/M02/91/42/wKioL1j0yvHSND8WAADpbiNAdqI228.png" target="_blank"></a>
6.crontab 注意事項
*屬于系統的任務通常儲存在 /etc/crontab 檔案中而不是使用 crontab -e 編輯儲存在個人檔案中。更好的做法是用文本編輯器建立 crontab 檔案并儲存到/etc/cron.d 中 (避免更新系統軟體包 cronie 時出現問題 )。
/etc/cron.d/crontab 檔案在日期說明後另加一個字段,表示将運作作業的使用者
*對于需要每天、每周或每月運作一次的腳本,可以直接将其設定為可執行檔案 ,并儲存在 /etc/cron.{daily,weekly,monthly} 中相應目錄下。這些任務由/etc/anacrontab 配置的系統 anacron 服務運作 anacron是 cron 的內建元件 ,用于更好地管理作業 ,并確定在作業因計算機關閉而未運作的情況下,在系統引導後運作作業
7.cron權限設定
*在系統中預設所有使用者可以設定cron
*使用者黑名單
– /etc/cron.deny
*使用者白名單
– /etc/cron.allow
<a href="https://s3.51cto.com/wyfs02/M02/91/73/wKioL1j2EJnSEKoNAADLdAAaRVM229.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/91/75/wKiom1j2EJqiTnZSAAASDu4aHGA015.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/91/75/wKiom1j2EJrxed_EAAEbgd75bEY652.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/91/73/wKioL1j2EJvg0rRxAABJJYa5FT0654.png" target="_blank"></a>
8.系統中的臨時檔案
*系統中服務在正常運作時會産生臨時檔案
*在系統中/usr/lib/tmpfiles.d/ 标實服務的臨時檔案存放位置
*檔案示例
*vim /usr/lib/tmpfiles.d/test.conf
d /run/test 0700 root root 5s
<a href="https://s5.51cto.com/wyfs02/M01/91/75/wKiom1j2EJuiTq_uAACaT8hCXZI573.png" target="_blank"></a>
9.控制系統中的臨時檔案
*systemd-tmpfiles
– --create /usr/lib/tmpfiles.d/test.conf
– --clean /usr/lib/tmpfiles.d/test.conf
<a href="https://s1.51cto.com/wyfs02/M02/91/74/wKioL1j2Ef7R8TH0AADxkzqvBMc550.png" target="_blank"></a>
本文轉自cuijb0221 51CTO部落格,原文連結:http://blog.51cto.com/cuijb/1917177