前言
大家好,這里是浩道linux,主要給大家分享linux、python、網絡通信相關的IT知識平臺。
今天浩道跟大家分享一個關于性能監控與通知相關的shell腳本!
系統的性能指標監控是比較常見的針對系統的管理場景,比如系統有挖礦程序,或者系統本身存在高CPU進程(正常應用),除了CPU之外,也可以監控內存,硬盤,網絡流星等使用情況。通過監控和發送通知,可以及時對系統的運行情況進行把控進而實現正確的處置。如果發現某些異常CPU消耗,甚至可以直接結束掉進程。
(1)通過相應的命令能夠輸出需要的指標。
(2)通過awk對輸出結果進行過濾,找到對應的值。
(3)根據對應的值進行判斷,進而決定后續處理方式。
一、使用yes程序監控CPU
#獲取總的CPu使用率并轉化為整數用于后續判斷 cpu=$(top -n 1 | grep ^%Cpu | awk '{print int($8)}') 或 cpu=$(top -n 1 | grep ^%Cpu | awk '{print $8}' | awk -F . '{print $1} ') #獲取是消耗CPU的進程信息 pcpu=`ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print $3}'` echo $pcpu / 4 | bc #計算單核CPU的使用率,與總CPU使用率才有可比性 #如何搜集內存使用信息 top -n 1 | grep "^KiB Mem" | awk '{print $6}' 或者使用free 也可以采集內存使用情況 #如何搜集硬盤使用信息 df -h | grep ^/dev/mapper #網絡流量 ip -s link
二、發送郵件通知
1、安裝mailx郵件客戶端
yum install mailx -y
早期的郵件客戶端通常使用sendmail來發送郵件,而新版本上使用的是postfix進行郵件的發送和接收。在Linux中,只要配置好郵件客戶端及SMTP賬號后,不僅可以向當前系統的任意賬號發送內部郵件,即我們看到的/var/spool/mail/user的文本型郵件,也可以向外網正常的郵箱地址發送郵件,如向12345678@qq.com發送郵件。
2、向本地系統用戶發郵件
systemctl start postfix #先確保postfix郵件發送服務啟動 echo "This is email body" | mail -s "test email" root #直接使用管道發送簡單郵件正文# mail -s "test email" root < /etc/passwd #直接使用輸入重定向的方式讀取一個文件內容作為正文 cp /dev/nu1l /var/spool/mai1/root #先清空郵件 使用mail命令可以直接查看郵件,輸入序號查看郵件正文,輸入 q 退出,輸入 h 回到郵件列表
3、向外部郵箱地址發郵件
(1)確定郵件賬號的SMTP信息,可以使用蝸牛學院的測試郵箱賬號,或使用QQ郵箱賬號。
(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)使用以下命令發送郵件
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
-
監控
+關注
關注
6文章
1986瀏覽量
54595 -
Linux
+關注
關注
87文章
10997瀏覽量
206796 -
Shell
+關注
關注
1文章
358瀏覽量
22919 -
腳本
+關注
關注
1文章
372瀏覽量
14656
原文標題:【shell腳本分享】性能指標監控與通知!
文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論