linux下实现内存监视,shell脚本来监视Linux上的内存使用情况
shell腳本來監視Linux上的內存使用情況
監視所有內容,例如CPU利用率,內存利用率,交換利用率,磁盤空間利用率等等。
如果您只有很少的系統并且要監視它們,那么編寫一個小的Shell腳本可以使您的任務非常容易。
我們添加了兩個Shell腳本來監視Linux系統上的內存利用率。
當系統達到給定的閾值時,它將觸發一封具有給定電子郵件ID的郵件。
方法1:Linux shell腳本通過電子郵件警報監視內存利用率。
如果您希望在系統達到給定閾值時僅通過郵件獲取當前的內存利用率百分比,請使用以下腳本。
這是一個非常簡單明了的單行腳本。在大多數情況下,我更喜歡使用這種方法。
當您的系統達到80%內存利用率時,它將觸發一封電子郵件。
*/5 * * * * /usr/bin/free | awk '/Mem/{printf("RAM Usage: %.2f%n"), $3/$2*100}' | ?awk '{print $3}' | awk '{ if($1 > 80) print $0;}' | mail -s "High Memory Alert" daygeek@gmail.com
注意: ? 請根據您的要求更改電子郵件ID和內存利用率閾值
輸出:您將收到類似于以下的電子郵件警報。
High Memory Alert: 80.40%
方法2:Linux bash腳本通過電子郵件警報監視內存利用率。
如果要在郵件警報中獲取有關內存利用率的更多信息。
然后使用以下腳本,其中包括基于頂部 Command和ps Command的頂部內存使用過程詳細信息。
這將立即讓您了解系統上正在發生什么,并在系統達到80%內存利用率時觸發電子郵件。
注意:請根據您的要求更改電子郵件ID和內存利用率閾值。
# vi /opt/scripts/memory-alert.sh
#!/bin/sh
ramusage=$(free | awk '/Mem/{printf("RAM Usage: %.2fn"), $3/$2*100}'| awk '{print $3}')
if [ "$ramusage" > 20 ]; then
SUBJECT="ATTENTION: Memory Utilization is High on $(hostname) at $(date)"
MESSAGE="/tmp/Mail.out"
TO="daygeek@gmail.com"
echo "Memory Current Usage is: $ramusage%" >> $MESSAGE
echo "" >> $MESSAGE
echo "------------------------------------------------------------------" >> $MESSAGE
echo "Top Memory Consuming Process Using top command" >> $MESSAGE
echo "------------------------------------------------------------------" >> $MESSAGE
echo "$(top -b -o +%MEM | head -n 20)" >> $MESSAGE
echo "" >> $MESSAGE
echo "------------------------------------------------------------------" >> $MESSAGE
echo "Top Memory Consuming Process Using ps command" >> $MESSAGE
echo "------------------------------------------------------------------" >> $MESSAGE
echo "$(ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head)" >> $MESSAGE
mail -s "$SUBJECT" "$TO" < $MESSAGE
rm /tmp/Mail.out
fi
最后添加一個cronjob以使其自動化。它將每5分鐘運行一次。
# crontab -e
*/5 * * * * /bin/bash /opt/scripts/memory-alert.sh
注意: ?由于腳本計劃每5分鐘運行一次,因此您將每隔5分鐘收到一次電子郵件警報
例如,如果您的系統在8.25分鐘后達到給定的限制,那么您將在第二個周期(即10分鐘(第二個5分鐘的周期)之后)收到電子郵件警報
輸出:您將收到類似于以下警報的電子郵件警報。
Memory Current Usage is: 80.71%
+------------------------------------------------------------------+
Top Memory Consuming Process Using top command
+------------------------------------------------------------------+
top - 12:00:58 up 5 days, ?9:03, ?1 user, ?load average: 1.82, 2.60, 2.83
Tasks: 314 total, ? 1 running, 313 sleeping, ? 0 stopped, ? 0 zombie
%Cpu0 ?: ?8.3 us, 12.5 sy, ?0.0 ni, 75.0 id, ?0.0 wa, ?0.0 hi, ?4.2 si, ?0.0 st
%Cpu1 ?: 13.6 us, ?4.5 sy, ?0.0 ni, 81.8 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
%Cpu2 ?: 21.7 us, 21.7 sy, ?0.0 ni, 56.5 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
%Cpu3 ?: 13.6 us, ?9.1 sy, ?0.0 ni, 77.3 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
%Cpu4 ?: 17.4 us, ?8.7 sy, ?0.0 ni, 73.9 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
%Cpu5 ?: 20.8 us, ?4.2 sy, ?0.0 ni, 70.8 id, ?0.0 wa, ?0.0 hi, ?4.2 si, ?0.0 st
%Cpu6 ?: ?9.1 us, ?0.0 sy, ?0.0 ni, 90.9 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
%Cpu7 ?: 17.4 us, ?4.3 sy, ?0.0 ni, 78.3 id, ?0.0 wa, ?0.0 hi, ?0.0 si, ?0.0 st
KiB Mem : 16248588 total, ?5015964 free, ?6453404 used, ?4779220 buff/cache
KiB Swap: 17873388 total, 16928620 free, ? 944768 used. ?6423008 avail Mem
PID USER ? ? ?PR ?NI ? ?VIRT ? ?RES ? ?SHR S ?%CPU ?%MEM ? ? TIME+ COMMAND
17163 daygeek ? 20 ? ? 2033204 487736 282888 S ?10.0 ? 3.0 ? 8:26.07 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 9408 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /u+
1121 daygeek ? 20 ? ? 4191388 419180 100552 S ? 5.0 ? 2.6 126:02.84 /usr/bin/gnome-shell
1902 daygeek ? 20 ? ? 1701644 327216 ?82536 S ?20.0 ? 2.0 153:27.92 /opt/google/chrome/chrome
2969 daygeek ? 20 ? ? 1051116 324656 ?92388 S ?15.0 ? 2.0 149:38.09 /opt/google/chrome/chrome --type=renderer --field-trial-handle=10346122902703263820,11905758137655502112,131072 --service-pipe-token=1339861+
1068 daygeek ? 20 ? ? 1104856 309552 278072 S ? 5.0 ? 1.9 143:47.42 /usr/lib/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3
27246 daygeek ? 20 ? ? ?907344 265600 108276 S ?30.0 ? 1.6 ?10:42.80 /opt/google/chrome/chrome --type=renderer --field-trial-handle=10346122902703263820,11905758137655502112,131072 --service-pipe-token=8587368+
+------------------------------------------------------------------+
Top Memory Consuming Process Using ps command
+------------------------------------------------------------------+
PID ?PPID %MEM %CPU CMD
8223 ? ? 1 ?6.4 ?6.8 /usr/lib/firefox/firefox --new-window
13948 ?1121 ?6.3 ?1.2 /usr/bin/../lib/notepadqq/notepadqq-bin
8671 ?8223 ?4.4 ?7.5 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 6999 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab
17163 ?8223 ?3.0 ?0.6 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 9408 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab
1121 ?1078 ?2.5 ?1.6 /usr/bin/gnome-shell
17937 ?8223 ?2.5 ?0.8 /usr/lib/firefox/firefox -contentproc -childID 16 -isForBrowser -prefsLen 9410 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab
8499 ?8223 ?2.2 ?0.6 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 6635 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab
8306 ?8223 ?2.2 ?0.8 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab
9198 ?8223 ?2.1 ?0.6 /usr/lib/firefox/firefox -contentproc -childID 7 -isForBrowser -prefsLen 8604 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab
?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
總結
以上是生活随笔為你收集整理的linux下实现内存监视,shell脚本来监视Linux上的内存使用情况的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: LeetCode 46. 全排列(回溯)
 - 下一篇: win7家庭版远程桌面补丁_无需惊慌!微