Linuxでネットワーク・ディスク使用量・稼働時間・負荷平均・RAM使用量を一括監視できるシェルスクリプト
システム管理者の業務は非常に多岐にわたります。サーバーの監視、ユーザー管理、ログの確認、バックアップの作成など、日々繰り返されるタスクは数多くあります。こうした反復作業を効率化するため、多くの管理者がスクリプトを作成して自動化しています。
本記事で紹介するシェルスクリプトは、典型的なシステム管理業務そのものを自動化することを目的としたものではありませんが、特にLinux初心者にとって、システム、ネットワーク、ユーザー、負荷、RAM、ホスト名、内部IP、外部IP、稼働時間など、必要な情報を一括して取得できる便利なツールです。
出力の整形にも一定の配慮がされており、スクリプトには悪意のあるコードは一切含まれていません。通常のユーザーアカウントで実行可能で、むしろrootではなく一般ユーザーとして実行することが推奨されています。
以下のコードは、Tecmintおよび作者へのクレジット表記を行うことで、自由に使用・改変・再配布できます。必要な情報以外の出力が生成されないよう出力をカスタマイズするとともに、Linuxシステムで一般的に使用されていない変数を採用するなどの工夫も施しています。
最小システム要件
動作するLinuxマシンが1台あれば十分です。
依存関係
標準的なLinuxディストリビューションであれば、追加の依存パッケージは一切不要です。また、スクリプトの実行にroot権限も必要ありません。ただし、インストールする場合のみ、一度だけrootパスワードの入力が必要になります。
セキュリティ
システムの安全性には十分な配慮が払われています。追加パッケージのインストールは不要で、実行にもroot権限は必要ありません。コードはApache 2.0ライセンスで公開されているため、Tecmintの著作権表示を維持すれば、自由に編集・改変・再配布することができます。
スクリプトのインストールと実行方法
まず、以下のwgetコマンドで監視スクリプト"tecmint_monitor.sh"をダウンロードし、chmodコマンドで適切な権限を設定して実行可能にします。
# wget https://tecmint.com/wp-content/scripts/tecmint_monitor.sh # chmod 755 tecmint_monitor.sh
スクリプトはrootとしてではなく、必ず一般ユーザーとしてインストールすることを強く推奨します。インストール時にrootパスワードの入力を求められ、必要なコンポーネントが適切な場所へ自動的に配置されます。
「tecmint_monitor.sh」をインストールするには、以下のように-i(install)オプションを指定して実行します。
./tecmint_monitor.sh -i
プロンプトが表示されたらrootパスワードを入力してください。処理が正常に完了すると、以下のような成功メッセージが表示されます。
Password: Congratulations! Script Installed, now run monitor Command
インストール後は、任意の場所から任意のユーザーで'monitor'コマンドを実行できます。インストールしない場合は、実行のたびにスクリプトのパスを明示的に指定する必要があります。
# ./Path/to/script/tecmint_monitor.sh
インストール済みであれば、どのユーザーアカウントからでもどこからでも、次のようにmonitorコマンドを実行するだけです。
$ monitor

コマンドを実行すると、以下のようなシステム関連情報が即座に表示されます。
- インターネット接続状態
- OSタイプ
- OS名
- OSバージョン
- アーキテクチャ
- カーネルリリース
- ホスト名
- 内部IPアドレス
- 外部IPアドレス
- ネームサーバー
- ログイン中のユーザー
- RAM使用量
- スワップ使用量
- ディスク使用量
- 負荷平均(ロードアベレージ)
- システム稼働時間
-v(version)オプションを使えば、インストール済みスクリプトのバージョンを確認できます。
$ monitor -v tecmint_monitor version 0.1 Designed by Tecmint.com Released Under Apache 2.0 License
まとめ
このスクリプトは、筆者が確認した複数のマシンでそのまま問題なく動作しました。あなたの環境でも同様に動作するはずです。もしバグを発見した場合は、コメント欄でお知らせください。これはゴールではなくスタートにすぎません。ここからさらに機能を拡張していくことも可能です。
一部のLinuxディストリビューションでは動作しないという報告を受けていましたが、常連読者の一人であるAndres Tarallo氏が率先して取り組み、すべてのLinuxディストリビューションに対応した改良版を作成してくださいました。更新版のスクリプトはGitHub(https://github.com/atarallo/TECMINT_MONITOR/)から入手できます。
スクリプトを編集してさらに発展させたい場合は、クレジット表記を行った上で自由に進めていただいて構いません。改良版のスクリプトもぜひ共有してください。こちらで記事を更新し、貢献してくださった方にきちんとクレジットを付与いたします。
ご意見や独自のスクリプトの共有もお待ちしています。いつでもサポートいたします。これまでいただいた多くのご支援に心より感謝申し上げます。今後ともどうぞよろしくお願いいたします!
-
Linuxのシェル初期化ファイルとユーザープロファイルを徹底解説
Linuxはマルチユーザー・タイムシェアリング方式のOSであり、複数のユーザーが同時に1台のシステムへログインして利用できます。そのため、システム管理者は、ソフトウェアのインストール・更新・削除、ユーザーが実行できるプログラム、閲覧・編集できるファイルなど、ユーザーごとの操作範囲を管理する役割を担っています。 Linuxでは、ユーザー環境の構築や維持を「システム全体(グローバル)」と「ユーザー固有(個人)」という2つの方法で行えます。通常、Linuxシステムを操作する基本手段はシェルであり、シェルはユーザーのログイン成功後に初期化処理として特定のファイルを読み込み、それに基づいて環境を構築しま
-
Linuxでディスク容量を確認・管理する方法|df・duコマンドの使い方を徹底解説
ディスク容量の管理は、使用するプラットフォームに関わらず、すべてのコンピューターユーザーにとって重要な課題です。特にシステム管理者の方は、オンライン・オフライン問わずシステムの健全性を常に監視する必要があります。Linuxではディスク容量が不足するとアップデートが妨げられ、深刻なエラーにつながる可能性もあるからです。 そこで、ディスク全体の空き容量や特定のファイルが使用している容量を把握するためには、「df」コマンドと「du」コマンドを使いこなせるようになることが不可欠です。 本記事では、dfコマンドとduコマンドを使ってLinux上のディスク容量を確認・管理する方法を詳しく解説します。 df