鳥哥基礎篇之--------例行性工作(crontab)

1 什麼是例行性工作

如,週報,週會等定期的。
如果計算機能夠主動通知,則輕鬆方便很多。這就產生了定時任務。


不由得 讓人想到相關的幾點內容,時鐘週期,定時器,和AI。特此總結了一個圖片,如下,不由得感慨,當年計算機的誕生其中關鍵一點時鐘週期的思想真是優秀。讓死的一行一行的文字內容成了活的可執行的,crontab讓一項一項功能成了活的,小到鬧鈴大到機械化的工業製造,而如今津津樂道的AI,也是在此基礎上進行深度學習或者訓練模型,進行功能的自我迭代和數據模擬建模分析等,以達到更高的要求。一切的思想是有共性的。向前輩看齊。
在這裏插入圖片描述

1.1 Linux工作調度的種類

例行性:crontab。對應的服務是crond。定時器。

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

突發性:at。對應的服務是atd。處理僅執行一次的任務。
通常設置這些內容不要忘了,開機自啓:
chkconfig atd/* on /etc/init.d/atd start/stop/restart

1.2 常見的例行性工作

– 進行日誌文件的輪替,log rotate
– 日誌文件分析logwatch的任務
– 新增locate的數據庫
– whatis數據庫的建立
– RPM軟技日誌文件的新建
– 刪除臨時文件
– 與網絡服務有關的分析行爲

2 僅執行一次的工作調度

at與atd服務

atd服務對應/etc/init.d/atd status ,該服務的開啓與狀態。

使用:
at [-mldv] TIME
at -c 執行任務
最重要的地方在於時間的指定。
例子:

at 23:00 2020-02-27
at>/bin/sync
at>/bin/sync       //命令的執行,儘量使用絕對路徑
at>/sbin/shutdown -h now
at><EOF>   //ctrl + d 進入到退出模式

綜上,at功能,指定命令執行時間, 後臺執行。

at的特性

後臺執行,脫機繼續工作
at在工作調度的使用上,系統會將該項at工作獨立出系統bash環境,直接交給系統atd程序來接管,因此,執行了at的工作可以立刻脫機,剩下的工作完全交給linux管理。

at管理

atq   //查詢at工作
atrm  //刪除

利用batch指定較空閒執行:
batch是利用at來進行命令的執行。 其中一個重要特性:

會在CPU工作負載小於0.8的時候,才進行執行工作任務。

如果系統極其繁忙的情況下,還要額外的at,不合理。所以纔有batch這個命令。
batch依舊是使用atq和atrm的命令進行管理任務。

3 循環執行的例行性工作調度


crond系統服務進行控制

crontab命令

crontab -h
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x <mask>  enable debugging
  1. 用戶控制
    用戶對應的crontab工作記錄在/var/spool/cron/username 裏面。
    cron執行的每一項工作都會被記錄到/var/log/cron日誌文件。

  2. crontab語法

*   *   *   *     *   command
分  時  日   月    周

----------------------
* :任意值都接受
,: 如:0  3,6      ,表示3和6兩個值
- :  如1-3, 表示1,2,3 
/n:  每隔n個單位。  
  1. 配置文件 /etc/crontab

crontab -e是針對用戶cron設計的。 配置文件爲/etc/crontab.
注意事項: 修改完/etc/crontab之後,需要重啓crond服務。
/etc/init.d/crond restart

MAILTO,輸入輸出信息的傳遞通知人員,例如可以設置爲[email protected]

PATH= ,輸入執行文件的查找路徑,一般使用默認的設置就夠了。

/etc/cron.hourly文件,每小時執行該目錄下的script文件。

  1. 注意事項
    大量工作同頻率執行,容易造成系統問題,注意給系統分配不同運行時間。

周與日月不可並存。並存的情況下,在匹配到具體設定指揮會分別都進行執行。

4 可喚醒停機期間的工作任務

針對關機情況下如何進行例行性工作。

anacron工具

功能:以天爲單位或者開機後立刻執行,監測停機期間,應該進行但是並沒有進行的crontab任務,並將該任務執行一遍,完成後停止。

anacron通過讀取timestamps來確定系統的關機時間。

anacron與/etc/anacrontab

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章