飛騰平臺使用crontab實現定時任務

場景介紹

在第一次爲15所進行設備展示的時候,由於自己也是被臨時通知,時間很緊張,我和同事幾個爲保障這個測試,週日那天也去加班,這才發現自己的事前的估計過於樂觀了,我也第一時間組織了覆盤。
覆盤15所展示過程
在這次展示中,資源智能設備還是給了我挺大的反思和感觸的,之前和領導說沒什麼問題的,結果發現問題暴露了那麼多。而且還因爲空間不足使用fdisk進行硬盤掛載指南,把達夢數據庫的DAMENG01.log、DAMENG02.log,可以說在設備出所之前自己的這波無心的操作之後就導致了我和同事熬夜到凌晨纔在金蝶同事的幫助下解決了這個問題。
這讓自己明白了開發過程中幾個問題:

之後要定期發佈版本,並且進行完整性測試。而不要單項測試。
2. 開發的流程很重要,不管是版本發佈、測試或者禪道Bug解決都是一樣的,只有保持節奏才能改進表現。
3. 產品的質量是管理得來的,而不是開發得來的。

由於當前資源智能設備中幾個模塊的不穩定,也由於這次設備展示給自己帶來的打擊太大,因此自己也就意識到了維護服務模塊狀態的重要性了。
當前感知軟件主要由如下的模塊組成:

  • 服務管理
  • 檢索平臺
  • es
  • 應用管理
  • node
  • nginx
    爲了保證多個模塊的正常運行,也因爲時間來不及,因此當設備回到所裏之後,自己就花了兩天的時間完成了對服務模塊狀態的維護,通過腳本來定時查看狀態,其實,在這時候

腳本相當於監控節點。

自己實現的主幹流程是通過crontab命令來實現的。因爲crontab可以用來實現某些任務的定時執行

crontab

crontab :crontab 這個指令所設定的工作將會循環的一直進行下去! 可循環的時間爲分鐘、小時、每週、每月或每年等。crontab 除了可以使用指令執行外,亦可編輯 /etc/crontab 來支持。 至於讓 crontab 可以生效的服務則是 crond 這個服務喔。

循環執行的例行性工作排程則是由 cron (crond) 這個系統服務來控制的

在這裏插入圖片描述

crontab語法

在這裏插入圖片描述
對上述命令進行簡單的闡述:

  • crontab -e會進入vi編輯模式,在末尾可以添加一行,而每一行則表示一個定時任務,具體的定時規則符合cron語法。稍後介紹。
  • crontab -l會列出指定用戶設置的例程性任務。
  • crontab -r 移除用戶的所有定時任務,如果要移除某一個任務,則可以通過crontab -e的方式編輯某一行即可。一般刪除定時任務時,會添加-i選項進行刪除前的提示。

語法

f1 f2 f3 f4 f5 program
  • 其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程序。
  • 當 f1 爲 * 時表示每分鐘都要執行 program,f2 爲 * 時表示每小時都要執行程序,其餘類推
  • 當 f1 爲 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 爲 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
  • 當 f1 爲 */n 時表示每 n 分鐘個時間間隔執行一次,f2 爲 */n 表示每 n 小時個時間間隔執行一次,其餘類推
  • 當 f1 爲 a, b, c,… 時表示第 a, b, c,… 分鐘要執行,f2 爲 a, b, c,… 時表示第 a, b, c…個小時要執行,其餘類推

* * * * *
| | | | |
| | | | ±---- 星期中星期幾 (0 - 7) (星期天 爲0)
| | | ±--------- 月份 (1 - 12)
| | ±-------------- 一個月中的第幾天 (1 - 31)
| ±------------------- 小時 (0 - 23)
±------------------------ 分鐘 (0 - 59)
使用者也可以將所有的設定先存放在文件中,用 crontab file 的方式來設定執行時間。

在cron中可以出現特殊符號,具體含義可以參考下圖:
在這裏插入圖片描述

定時設置

通過crontab -e設置了類似如下的一行控制代碼:
在這裏插入圖片描述

定時執行腳本

基本設置是這樣的,上述crontab控制了腳本執行的頻路,而腳本則進行端口查看進程是否存在,當然這只是一種簡單的維護,因爲有可能雖然端口存在但進程已經處於死亡狀態了,但現在暫時不考慮這麼多,而只檢測端口的存在
基本上用到的核心命令爲netstatlinux服務器端口netstat
等之後把腳本內容填寫到這裏吧。
而且在飛騰平臺上,crontab創建的定時任務在開機之後仍然可以自動啓動,這無疑對於我保障系統的運行狀態有很好的幫助作用。

配置文件

在這裏插入圖片描述
注意:鳥哥私房菜中,曾經提到過如下的Tips
在這裏插入圖片描述

最後把鳥哥對於crontab的總結放在下面:
在這裏插入圖片描述

總結

 在週六下雨的今天,坐在書桌前完成了對於文章的總結吧,而且腳本確實也發揮了它的作用,在設備寄回所裏之後,自己就花了大概兩天的時間完成定時腳本schedule_task.sh的撰寫、campstat、campstop和portpid的編寫,這大大的方便了我們幾個在linux上操作的簡易程度,而且設備寄回不久就要再次展示軍種軍銜的任務,藉助定時任務、命令腳本,我和同事在環境測試中順利的開關機三次保障了服務的正常運行。效果很明顯,因爲第一次找一個完全不懂linux的人來支撐自己通過打電話、遠程視頻、微信的方式真的太累了,真的太累了。
 在此,還要感謝這個春節自己在老家,通過平板完成的對於2019全新的Shell從入門到精通,這對於自己編寫腳本有了全新的體驗。感恩自己的努力和勤奮吧。
 本文主要講述了crontab的實踐,大家可以去實操一下了。

			202041115:51:44於奧克斯·時代未來之城
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章