前言
大家好,這里是浩道linux,主要給大家分享linux、python、網(wǎng)絡(luò)通信相關(guān)的IT知識(shí)平臺(tái)。
今天浩道跟大家分享一個(gè)關(guān)于性能監(jiān)控與通知相關(guān)的shell腳本!
系統(tǒng)的性能指標(biāo)監(jiān)控是比較常見的針對(duì)系統(tǒng)的管理場(chǎng)景,比如系統(tǒng)有挖礦程序,或者系統(tǒng)本身存在高CPU進(jìn)程(正常應(yīng)用),除了CPU之外,也可以監(jiān)控內(nèi)存,硬盤,網(wǎng)絡(luò)流星等使用情況。通過監(jiān)控和發(fā)送通知,可以及時(shí)對(duì)系統(tǒng)的運(yùn)行情況進(jìn)行把控進(jìn)而實(shí)現(xiàn)正確的處置。如果發(fā)現(xiàn)某些異常CPU消耗,甚至可以直接結(jié)束掉進(jìn)程。
(1)通過相應(yīng)的命令能夠輸出需要的指標(biāo)。
(2)通過awk對(duì)輸出結(jié)果進(jìn)行過濾,找到對(duì)應(yīng)的值。
(3)根據(jù)對(duì)應(yīng)的值進(jìn)行判斷,進(jìn)而決定后續(xù)處理方式。
一、使用yes程序監(jiān)控CPU
#獲取總的CPu使用率并轉(zhuǎn)化為整數(shù)用于后續(xù)判斷 cpu=$(top -n 1 | grep ^%Cpu | awk '{print int($8)}') 或 cpu=$(top -n 1 | grep ^%Cpu | awk '{print $8}' | awk -F . '{print $1} ') #獲取是消耗CPU的進(jìn)程信息 pcpu=`ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print $3}'` echo $pcpu / 4 | bc #計(jì)算單核CPU的使用率,與總CPU使用率才有可比性 #如何搜集內(nèi)存使用信息 top -n 1 | grep "^KiB Mem" | awk '{print $6}' 或者使用free 也可以采集內(nèi)存使用情況 #如何搜集硬盤使用信息 df -h | grep ^/dev/mapper #網(wǎng)絡(luò)流量 ip -s link
二、發(fā)送郵件通知
1、安裝mailx郵件客戶端
yum install mailx -y
早期的郵件客戶端通常使用sendmail來發(fā)送郵件,而新版本上使用的是postfix進(jìn)行郵件的發(fā)送和接收。在Linux中,只要配置好郵件客戶端及SMTP賬號(hào)后,不僅可以向當(dāng)前系統(tǒng)的任意賬號(hào)發(fā)送內(nèi)部郵件,即我們看到的/var/spool/mail/user的文本型郵件,也可以向外網(wǎng)正常的郵箱地址發(fā)送郵件,如向12345678@qq.com發(fā)送郵件。
2、向本地系統(tǒng)用戶發(fā)郵件
systemctl start postfix #先確保postfix郵件發(fā)送服務(wù)啟動(dòng) echo "This is email body" | mail -s "test email" root #直接使用管道發(fā)送簡(jiǎn)單郵件正文# mail -s "test email" root < /etc/passwd #直接使用輸入重定向的方式讀取一個(gè)文件內(nèi)容作為正文 cp /dev/nu1l /var/spool/mai1/root #先清空郵件 使用mail命令可以直接查看郵件,輸入序號(hào)查看郵件正文,輸入 q 退出,輸入 h 回到郵件列表
3、向外部郵箱地址發(fā)郵件
(1)確定郵件賬號(hào)的SMTP信息,可以使用蝸牛學(xué)院的測(cè)試郵箱賬號(hào),或使用QQ郵箱賬號(hào)。
(2)編輯/etc/mail.rc,將上述SMTP信息輸入
set from=student@woniuxy.com set smtp=smtp.woniuxy.com set smtp-auth-user=student@woniuxy.com set smtp-auth-password=Student123 set smtp-auth=login
(3)使用以下命令發(fā)送郵件
mail -s "test email" 15903523@qq.com < /etc/passwd mail?-s?"test.email"?-a?/opt/picture.png?15903523@qq.com?/etc/passwd?#帶附件
1、top-n1查看程序信息
在vmware中開啟yes程序
[root@numberone~]#yes,之后在xshell中再次top-n1查看程序信息2、
[root@numberone~]#cpu=$(top -n1|grep^%Cpu|awk'{printint($8)}') [root@numberone~]#echo$cpu
3、
[root@numberone~]#[$cpu-lt75] [root@numberone~]#echo$? 0
為0,說明小于75
[root@numberone~]#[$cpu-lt70] [root@numberone~]#echo$? 1
為1說明不小于70,即大于70
[root@numberone ~]# pcpu= `ps aux | sort -k 3 -r | head -n 2 | tail -n 1 |awk ‘{print $3}’ [root@numberone ~]# echo $pcpu` 99.7 [root@numberone ~]# echo $pcpu / 4 | bc 24 [root@numberone ~]# top -n 1 |grep “^KiB Mem” | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 6}?'` `3113076` `[…(top -n 1 | grep ^%Cpu | awk ‘{print int ($8)}’) if [ c p u ? l t 75 ] ; t h e n p c p u = cpu -lt 75 ]; then pcpu=cpu?lt75];thenpcpu=(ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 3}?') ppcp…(echo p c p u / 4 ∣ b c ) p i d = pcpu / 4 | bc) pid=pcpu/4∣bc)pid=(ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk ‘{print $2}’) echo “CPU is lower, $pid consume $ppcpu%” else echo “CPU is OK” fi
6、[root@numberone~]#yuminstallmailx-y
[root@numberone~]#systemctlstartpostfix
-
監(jiān)控
+關(guān)注
關(guān)注
6文章
2216瀏覽量
55252 -
Linux
+關(guān)注
關(guān)注
87文章
11316瀏覽量
209814 -
Shell
+關(guān)注
關(guān)注
1文章
366瀏覽量
23411 -
腳本
+關(guān)注
關(guān)注
1文章
391瀏覽量
14889
原文標(biāo)題:【shell腳本分享】性能指標(biāo)監(jiān)控與通知!
文章出處:【微信號(hào):浩道linux,微信公眾號(hào):浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論