序文 Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場には数多くあります。システムが指定されたしきい値に達したときに電子メールアラートを送信できます。 CPU 使用率、メモリ使用率、スワップ使用率、ディスク領域使用率など、あらゆるものを監視できます。 少数のシステムしかなく、それらを監視したい場合は、小さなシェル スクリプトを作成すると、タスクが非常に簡単になります。 このチュートリアルでは、Linux システムのメモリ使用率を監視するための 2 つのシェル スクリプトを追加しました。システムが指定されたしきい値に達すると、特定の電子メール アドレスに電子メールが送信されます。 方法 1: Linux Bash スクリプトを使用してメモリ使用率を監視し、メールを送信する システムが特定のしきい値に達したときにのみ、現在のメモリ使用率のパーセンテージを電子メールで取得する場合は、次のスクリプトを使用します。 これは非常にシンプルでわかりやすい 1 行のスクリプトです。ほとんどの場合、私はこのアプローチを好みます。 システムのメモリ使用率が 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 "メモリ使用量過多の警告" [email protected] 注意:弊社のメール アドレスを使用する代わりに、メール アドレスを変更する必要があります。さらに、必要に応じてメモリ使用率のしきい値を変更することもできます。 出力: 以下のような電子メールアラートが届きます。
これまで、多くの便利なシェル スクリプトを追加してきました。これらをご覧になりたい場合は、以下のリンクにアクセスしてください。 * シェル スクリプトを使用して日常業務を自動化する方法は? 方法 2: Linux Bash スクリプトを使用してメモリ使用率を監視し、メールを送信する メールアラートでメモリ使用率に関する詳細情報を取得したい場合。 top および ps コマンドに基づく上位のメモリ使用率とプロセスの詳細を含む次のスクリプトを使用します。 これにより、システムのパフォーマンスがすぐにわかります。 システムのメモリ使用率が「80%」に達すると、電子メールが送信されます。 注意: 弊社のメール アドレスを使用する代わりに、メール アドレスを変更する必要があります。さらに、必要に応じてメモリ使用率のしきい値を変更することもできます。 # vi /opt/scripts/memory-alert.sh #!/bin/sh ramusage=$(free | awk '/Mem/{printf("RAM 使用量: %.2f\n"), $3/$2*100}' | awk '{print $3}') [ "$ramusage" > 20 ] の場合; 件名="注意: $(ホスト名) のメモリ使用率が $(日付) に高くなっています" メッセージ="/tmp/Mail.out" 宛先:[email protected] echo "現在のメモリ使用量は: $ramusage%" >> $MESSAGE エコー "" >> $MESSAGE echo "------------------------------------------------------------------" >> $MESSAGE echo "top コマンドを使用したメモリ消費量上位プロセス" >> $MESSAGE echo "------------------------------------------------------------------" >> $MESSAGE echo "$(top -b -o +%MEM | head -n 20)" >> $MESSAGE エコー "" >> $MESSAGE echo "------------------------------------------------------------------" >> $MESSAGE echo "ps コマンドを使用したメモリ消費量上位のプロセス" >> $MESSAGE echo "------------------------------------------------------------------" >> $MESSAGE echo "$(ps -eo pid,ppid,%mem,%Memory,cmd --sort=-%mem | head)" >> $MESSAGE メール -s "$SUBJECT" "$TO" < $MESSAGE rm /tmp/Mail.out フィ 最後に、この操作を自動化する cron ジョブを追加します。 5分ごとに実行されます。 # crontab -e */5 * * * * /bin/bash /opt/scripts/memory-alert.sh 注意:スクリプトは 5 分ごとに実行されるようにスケジュールされているため、最大 5 分以内に電子メールによるリマインダーが届きます (ただし、時間によっては 5 分にならない場合もあります)。 たとえば、システムが指定された制限値 8.25 に達すると、5 分以内に電子メールアラートが届きます。これで明らかになったと思います。 出力: 以下のような電子メールアラートが届きます。 メモリの現在の使用率は: 80.71% +----------------------------------------------------------------------------------+ top コマンドを使用したメモリ消費量上位プロセス +----------------------------------------------------------------------------------+ トップ - 12:00:58 5 日間稼働、9:03、ユーザー 1 人、負荷平均: 1.82、2.60、2.83 タスク: 合計 314、実行中 1、スリープ中 313、停止中 0、ゾンビ 0 %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 メモリ: 合計 16248588、空き 5015964、使用中 6453404、バッファ/キャッシュ 4779220 KiB スワップ: 合計 17873388、空き 16928620、使用済み 944768。使用可能なメモリ 6423008 PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド 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 デイギーク 20 4191388 419180 100552 S 5.0 2.6 126:02.84 /usr/bin/gnome-shell 1902 デイギーク 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+ +----------------------------------------------------------------------------------+ ps コマンドを使用してメモリを最も多く消費しているプロセス +----------------------------------------------------------------------------------+ PID PPID %MEM %CPU コマンド 8223 1 6.4 6.8 /usr/lib/firefox/firefox --新しいウィンドウ 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 タブ 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 タブ 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 タブ 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 タブ 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 タブ 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 タブ 出典: https://www.2daygeek.com/linux-bash-script-to-monitor-memory-utilization-usage-and-send-email/ 著者: Magesh Maruthamuthu トピック: lujun9972 翻訳者: wxy 校正者: wxy 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: MySQLサーバのスレッド数を表示する方法の詳細な説明
>>: Vueはタブを切り替えてデータの状態を維持する3つの方法を実装します
<br />Web ページに音楽を挿入する場合、サフィックスに応じて異なるコードを記述す...
なぜログを読む必要があるのでしょうか?たとえば、コンテナの起動に失敗したがプロンプトが表示されない場...
序文: MySQL を使用すると、時間の表示が正しくない、タイムゾーンが GMT+8 ゾーンにない、...
何が大問題ですか?長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと...
sort コマンドは非常によく使用されますが、-o、-n、-u、-r などの多くのパラメーターがあり...
目次導入効果原理形状練習するこの記事では、例を使用して、MySQL マスター/スレーブ レプリケーシ...
ワーカープロセスは、起動されると、まず自身の動作に必要な環境を初期化し、次に実行する必要があるイベン...
1. はじめに英語に慣れていない人は、システムを英語から中国語に変更したいかもしれません。一方、クラ...
Ubuntu に jdk をインストールする: [リンク] UbuntuにEclipseをインストー...
最近、特に異常なビジネス需要があり、テーブルがあります テーブル「デモ」を作成します( `id` i...
目次1. スローログの紹介2. スローログの練習1. スローログの紹介スロー ログの正式名称はスロー...
目次Vueルーティング相対パスジャンプ1. 属性の追加2.router.resolveメソッドVue...
目次スケルトンスクリーンとはアプレットでスケルトン画面を生成する方法導入方法表示と非表示ユーザーエク...
方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...
どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...