在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

監控系統負載記錄系統狀態

阿銘linux ? 來源:阿銘linux ? 作者:阿銘linux ? 2022-11-11 09:25 ? 次閱讀

【需求】

寫一個監控腳本,監控系統負載,如果系統負載超過10,需要記錄系統狀態信息。

提示:

1)系統負載命令使用uptime看,過去1分鐘的平均負載

2)系統狀態使用如下工具標記:top、 vmstat、 ss

3)要求每隔20s監控一次

4)系統狀態信息需要保存到/opt/logs/下面,保留一個月,文件名建議帶有`date +%s`后綴或者前綴

【解析】

這是一個監控腳本,對于監控腳本,通常有兩種思路

一個是做一個死循環,讓它一直跑著,每檢測一次,中間間隔一段時間,比如本題要求的20s

另外一種是一分鐘執行一次,利用系統的任務計劃,每分鐘執行

本案例要求每20s監控一次,所以只能使用第一種,死循環

死循環,使用while :; do ...; done

這里的 : 你可以理解成條件為真

再來看腳本要求,監控系統負載,超過10就記錄系統狀態信息

問題的關鍵點在于,如何獲取到系統負載的值

系統負載,在Linux里面可以使用w或者uptime或者top命令都可以獲取到

2c21e71e-6152-11ed-8abf-dac502259ad0.png

2c309a0c-6152-11ed-8abf-dac502259ad0.png

2c3e516a-6152-11ed-8abf-dac502259ad0.png

這里的load average 后面的三個數字就是系統負載,它們分別表示過去1分鐘、5分鐘、15分鐘內系統的平均負載

為了更加精準,我們需要選擇1分鐘的平均負載

那這個負載到底代表著什么含義呢?

就拿這個1分鐘負載來說,這個數字表示,過去1分鐘,平均有多少個進程在使用CPU資源

使用CPU資源的進程越多,那就意味著CPU越忙

那,這個數字為多少是合適呢?

這取決于你的系統里有多少顆CPU,這個數字不是物理CPU,指的是邏輯CPU個數,那如何查看?

使用lscpu命令看

2c571272-6152-11ed-8abf-dac502259ad0.png

比如,你系統有8顆CPU,那么系統負載為8時,表示1顆CPU處理一個進程,這樣CPU沒有空閑也不忙,是最合適的

好了,說完系統負載,再回頭看腳本

如何拿到這個1分鐘的負載數值呢?

這就需要借助sed awk 以及 cut等各種處理字符串的工具了

uptime |awk -F 'average:' '{print $2}'

2c795580-6152-11ed-8abf-dac502259ad0.png

首先將三個數字打出來,然后想辦法截取第一個數字

此時,可以使用cut來截取

2c8aeb1a-6152-11ed-8abf-dac502259ad0.png

這時候出現的結果還不是最終的數字,還需要將最前面的空格去掉,而且我們不需要小數點以及后面的數字

使用sed將空格去掉

2ca768da-6152-11ed-8abf-dac502259ad0.png

再使用cut將小數點前面的數字截取

2cbb3180-6152-11ed-8abf-dac502259ad0.png

其實,寫腳本就需要大家一步一步地去嘗試

拿到負載值之后,再去和10做比較

可以先將負載值賦值到變量里,然后用變量去做比較

if [ $load -gt 10 ]; then ...; fi

如果負載值高于10,就需要記錄系統狀態信息

題目也提示我們了,獲取系統負載的狀態,有top vmstat 和 ss 三個命令

如果大家不會使用這幾個命令,那么腳本就無法寫出來了

所以,寫shell腳本的前提是,你必須要具備一定的認知

top -bn1 可以一次性展示top的結果,但是沒必要將所有都記錄下來,只需要前100行就足夠了,因為我們關注的是排在最前面的幾個進程

vmstat 命令可以記錄包括cpu、內存、io等信息,用法是 vmstat n1 n2 , 其中n1和n2是兩個數字,前面的數字,表示幾秒鐘打印一次信息,后面的數字是打印幾次,建議是1秒1次,打印10次

所以最終用法啊是

vmstat 1 10

ss是用來查看網絡鏈接狀態的命令,這里需要使用

ss -an

有了記錄系統狀態信息的命令后,接下來就是要規劃,將這些信息記錄到哪個日志里

兩種思路,一個是一股腦全部記錄到一個文件里,每次記錄都是追加

另外一個思路是,針對top、vmstat、ss分別記錄日志

這里我選擇第二個,這樣方便查看,題目中要求給這個日志加一個date +%s的時間戳作為后綴前綴或者后綴,那么就用后綴吧,比如:

top.`date +%s`, vmstat.`date+%s`, ss.`date +%s`

刪除掉一個月以前的,使用find查看即可,還需要注意,/opt/logs/下面有可能有其它日志,所以我們只需要針對本腳本產生的日志進行搜索

find可以這樣做

find  /opt/logs  -name "top*" -o -name "vmstat*" -o -name "ss*" 

說明一下,這里的-o表示或者的意思,如果不加-o,那么就是并且

find 還支持將一堆條件搞到一起,作為一個整體,需要使用(),例如

find  /opt/logs ( -name "top*" -o -name "vmstat*" -o -name "ss*" ) -mtime +30

需要注意,小括號使用脫義符號脫義了,并且前后有空格

【參考答案】

腳本最終結果是這樣的:

#!/bin/bash
[ -d /opt/logs ] || mkdir -p /opt/logs
while :
do
    load=`uptime |awk -F 'average:' '{print $2}'|cut -d',' -f1|sed 's/ //g' |cut -d. -f1`
    if [ $load -gt 10 ]
    then
        top -bn1 |head -n 100 > /opt/logs/top.`date +%s` 
        vmstat 1 10 > /opt/logs/vmstat.`date +%s`
        ss -an > /opt/logs/ss.`date +%s`
    fi
    sleep 20
    find  /opt/logs ( -name "top*" -o -name "vmstat*" -o -name "ss*" ) -mtime +30 |xargs rm  -f
done

腳本運行時,丟入后臺去

著重提醒一下,有的同學將最后面這個load賦值或者find命令放到了while循環外面,

這是不對的,放到while循環前面它只會執行一次,而放到while循環后面永遠也不會執行

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11400

    瀏覽量

    212035
  • 監控系統
    +關注

    關注

    21

    文章

    3991

    瀏覽量

    180182
  • 腳本
    +關注

    關注

    1

    文章

    395

    瀏覽量

    15181

原文標題:監控系統負載記錄系統狀態

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    機房環境監控系統

    看所監測配電線路的參數。相應的參數應存有歷史曲線,可查看該參數的歷史曲線,可通過IE瀏覽器全面查看。2、空調監控 實時監視精密空調的工作狀態與參數。系統實時全面診斷空調運行狀況,監控
    發表于 09-29 16:31

    智能機房監控系統 智能家居監控系統

    可將各機房控制器集中連接到監控電腦,傳送到互聯網/手機等遠程終端。二, 系統結構圖1,整體系統架構2,單站點系統結構三, 系統特點1,節能減
    發表于 12-11 17:47

    智能機房監控系統

    各機房控制器集中連接到監控電腦,傳送到互聯網/手機等遠程終端。二, 系統結構圖1,整體系統架構2,單站點系統結構三, 系統特點1,節能減排;
    發表于 01-03 11:13

    【Future】大型儀器設備運行狀態監控系統

    本帖最后由 wangjiamin2014 于 2015-1-8 18:00 編輯 項目名稱: 大型儀器設備運行狀態監控系統團隊名稱:Future團隊成員:張勉|付清林|田秀兵作品演示作品介紹
    發表于 12-31 14:02

    【WRTnode2R申請】車載記錄

    申請理由:車載記錄儀的功能是從車輛采集 OBD、胎壓、溫度、GPS等數據。然后通過3G網絡將這些數據傳輸到云端給手機客戶端或者PC客戶端使用。想申請WRTnode 2R的一個原因是我對OpenWrt
    發表于 10-13 14:05

    安燈狀態監控系統

    )2、能夠實時監控異常狀態。3、預留兩個自動清零時間點(客戶自行設置清零時間)4、記錄每個時間段異常處理時間。5、系統可設置兩個班次時間區間,在每個班次開始時沒有任何
    發表于 07-28 15:48

    【HarmonyOS HiSpark AI Camera】車載記錄

    項目名稱:車載記錄儀試用計劃:本人在AR領域有三年多的學習和開發經驗,曾設計過類似谷歌眼鏡版的開源AR眼鏡,參與國內開源智能眼鏡的開發,對計算機圖像標定技術,圖像識別,基于標識的跟蹤注冊技術有過
    發表于 11-20 18:36

    集中監控系統的要求有哪些?

    及輸出等各部分的狀態。要求系統標明UPS電流流向,可看到負載的供電狀況,是否受保護等;  ( 2 )系統要能對機房UPS各部件的參數狀態進行
    發表于 12-01 16:00

    邏迅智慧冷鏈智能無線溫濕度傳感器高精度疫苗監控載記錄

    ,應配備溫濕度監控系統,對冷藏疫苗運輸過程中冷藏車和恒溫箱內的溫度進行自動監控記錄,可有效防范儲存和運輸過程中可能影響疫苗質量和安全的各種風險,保證疫苗儲存和運輸過程中的質量。因此,
    發表于 02-24 14:30

    機房監控系統標準和常見故障記錄

    集中監控系統系統建設要求對機房整體動力環境設備工作有狀態演示,故障迅速定位、故障及時通知、保存報警信息及系統運行數據、繪制分析圖表、設備巡
    發表于 09-08 07:43

    消控監控系統 服務器,動環監控系統【斯必得智慧機房】精選資料分享

    的獨立的運行系統那么按照傳統的人工巡查的方式將要浪費大量的人力和物力。動環監控系統有效監視系統和設備的運行狀態,監視基站/機房環境
    發表于 09-10 09:13

    基于動態負載均衡的網絡監控系統

    設計企業局域網絡監控系統NetMonitor,該系統基于J2EE技術實現對網絡服務的支持。引入動態負載均衡機制作為集群服務器網絡監控
    發表于 04-07 08:52 ?31次下載

    負載平衡監控系統設計源碼分享

    負載平衡監控系統設計源碼分享
    發表于 06-06 11:33 ?3次下載

    基于ARM的電子負載網絡監控系統

    電子發燒友網站提供《基于ARM的電子負載網絡監控系統.pdf》資料免費下載
    發表于 10-12 11:21 ?1次下載
    基于ARM的電子<b class='flag-5'>負載</b>網絡<b class='flag-5'>監控</b><b class='flag-5'>系統</b>

    Jtti:有哪些工具可以幫助我監控自動更新過程中的系統狀態

    的問題。 journalctl:查看 systemd 系統和服務日志,了解服務狀態系統事件。 2.性能監控工具 top和htop:實時監控
    的頭像 發表于 12-10 15:46 ?341次閱讀
    主站蜘蛛池模板: 日韩精品三级 | 91网址在线播放 | 手机看片福利在线 | 免费一级毛片在线播放不收费 | 午夜一级精品免费毛片 | 久久99热不卡精品免费观看 | 色欲情狂 | 欧美草逼 | h视频免费高清在线观看 | 亚洲第一成网站 | 九草伊人 | 女人张开腿让男人桶免费最新 | 亚洲欧美国产视频 | 国产在线麻豆自在拍91精品 | 欧美午夜视频在线观看 | 亚洲日本欧美 | 四虎国产精品影库永久免费 | 女攻各种play男受h | 456性欧美欧美在线视频 | 久草免费在线播放 | 黄黄视频免费看 | 黄色午夜影院 | 99久久综合给久久精品 | 日产精品卡二卡三卡四卡无卡乱码 | 免费国产午夜高清在线视频 | 天天综合天天做 | 国产一级aa大片毛片 | 国产美女特级嫩嫩嫩bbb | 丁香花在线视频 | 美女扒开尿口给男人看大全 | 色碰人色碰人视频 | 欧美深深色噜噜狠狠yyy | 老司机精品免费视频 | 国产香蕉在线精彩视频 | 98色花堂永久地址国产精品 | 日本午夜影院 | 好硬好湿好爽再深一点h视频 | 国产黄色大全 | 国产精品久久久久久免费播放 | 欧美日本俄罗斯一级毛片 | 日本免费人成黄页在线观看视频 |