LFCA:Linuxで基本的なシステムメトリクスを監視する方法–パート8

この記事はPart 8LFCAシリーズの一部であり、この部分では、Linuxシステムで基本的なシステムメトリックを監視し、管理タスクをスケジュールする一般的なシステム管理コマンドについて紹介します。

システムのパフォーマンスを把握することは、システム管理者として引き受ける必要のある重要な役割の1つです。確かに、オープンソースのモニタリングツールGrafanaNagiosなど)はシステムメトリックを監視するために十分です。

幸いにも、Linuxにはいくつかのコマンドラインユーティリティが用意されており、CPUおよびメモリの利用状況実行中のプロセスなど、重要なシステム統計情報を一覧できます。

基本的なシステムメトリクスを監視するのに役立ついくつかのコマンドラインツールを簡単に見てみましょう:

1. uptimeコマンド

uptimeコマンドは、システムが電源を入れてからの稼働時間を提供します。コマンドオプションを指定しない場合、現在時刻、システムの稼働時間、ログインしているユーザー、および平均負荷が表示されます。

$ uptime

-sオプションを使用すると、システムの日付とシステムの起動時間が表示されます。

$ uptime -s

-pオプションを使用して、稼働時間のみを取得します。

$ uptime -p
Check Linux System Uptime

2. freeコマンド

システムの合計および利用可能なメモリとスワップスペースを一覧表示するには、次のようにfreeコマンドを使用します。 -hオプションを使用すると、出力が人間が読める形式で表示されます。

$ free -h
Check Linux Memory Usage

3. topコマンド

topコマンドは2つのことを行います:リアルタイムのシステムメトリクスの概要を提供し、Linuxカーネルによって管理されている現在実行中のプロセスを表示します。

実行中のプロセスを表示するだけでなく、topコマンドは、非常に上部に配置されているuptimeおよびfreeコマンドによって提供される出力を組み合わせます。

$ top
Check Linux Running Processes

topコマンドの改良版は、統計情報を直感的かつ人間が読める形式で表示するhtopユーティリティです。

Linuxでは、htopをインストールするには、次のコマンドを使用できます:

$ sudo apt install htop  [On Debian-based]
$ sudo dnf install htop  [On RHEL-based]

htopを起動するには、単純に次のコマンドを実行します:

$ htop
htop – an interactive process viewer

4. dfコマンド

以前に、基本的なLinuxコマンドでdf(ディスクフリー)ユーティリティについて議論しました。 dfコマンドは、ファイルシステムごとのハードディスクの利用状況に関する情報を提供します。情報を人間が読みやすい形式で出力するには、-Thフラグを使用します。

$ df -Th
Check Linux Disk Usage

5. CPU情報の表示

ベンダーID、プロセッサコア、モデル名などのCPU情報を表示するには、次のコマンドを実行します:

$ cat /proc/cpuinfo
Check Linux Cpu Info

システム管理タスクの自動化

予め定義された時間にタスクやジョブをスケジュールすることは、どのシステム管理者も持っているべき基本的なスキルの一つです。バックアップや定期的な再起動など、定期的に実行する管理タスクをスケジュールしたい場合があります。

Cronはタスクを自動化するのに役立つタイムスケジューラです。cron機能にはcronデーモンと、その構成を読み取るためのテーブルセットであるcrontabが含まれています。crontabは実行されるタスクを記述します。

cronジョブを作成するには、まずそのアーキテクチャを理解する必要があります。cronジョブは、5つのフィールドに続いて実行されるコマンドまたはスクリプトで構成されています。cronジョブの各フィールドを示す図式表現を以下に示します。

Cron Architecture

いくつかのcronの例とその解釈を見てみましょう:

0	12	*	*	*   <command>   Executes a task daily  at noon
30	06	*	*	*   <command>   Executes a task daily  at 6:30 am 
30      *	*	*	*   <command>   Executes a task  every 30 minutes
0	0	*	*	*   <command>   Executes a task  at midnight 
30	06	*	* 	5   <command>  Executes a task at 6:30 am every Fri
*	* 	*	* 	*   <command>  Executes a task every minute
0	0	1	* 	*   <command>  Executes a task at midnight on the first day of every month
0	3 	*	* 	Mon-fri   <command> Executes a task at 3:00am on every day of the week from Monday to Friday.

では、cronジョブを作成しましょう。

最初に、ダウンロードフォルダーを/home/tecmint/Downloadsから/home/documentsディレクトリにバックアップするバックアップスクリプトを作成します。

Vimエディターを使用して、次に示すようにスクリプトファイルを作成して開きます。

$ vim backup.sh

シェルスクリプトの開始を示すために、最上部にシバンヘッダーを記述します。

#!/bin/bash

ディレクトリのバックアップコマンドは以下の通りです。

tar -cvf /home/tecmint/Documents/downloads.tar.gz /home/tecmint/Downloads
File Backup Script

最初のパスは、バックアップファイルの完全なパスであり、downloads.tar.gzです。2番目のパスは、バックアップするディレクトリのパスを指します。

ファイルを保存するには、ESCを押してから:wqと入力し、ENTERを押します。

次に、バックアップスクリプトに実行権限を割り当てます。これにより、cronユーティリティがスクリプトを実行できるようになります。

$ chmod +x backup.sh

スクリプトを実行するcronジョブを作成するには、次のコマンドを実行します。

$ crontab -e

バックアップスクリプトを毎日14:30に実行するようにcronジョブを定義します。

30 14 * * * /home/tecmint/backup.sh
Create Cron Job in Linux

ファイルを保存するには、ESCを押してから:wqと入力し、ENTERを押します。ファイルから抜けると、crontab: installing a new crontabというプロンプトが表示され、cronジョブが初期化されたことを示します。

Cron Job Added Succesfully

現在のcronジョブをリストするには、次のコマンドを実行します。

$ crontab -l
List Cron Jobs

したがって、私たちのバックアップタスクでは、時計が14:30になると、「Downloads」ディレクトリの圧縮ファイルが「Documents」ディレクトリに正常に作成されます。

$ ls Documents/
Verify Backup

もしあなたがもはやcronジョブを望まない場合、次のコマンドを使用して削除できます:

$ crontab -r
結論

システム管理者が日常的に実行する他のいくつかのタスクがあります。例えば在庫の確認などです。

Source:
https://www.tecmint.com/monitor-basic-system-metrics-in-linux/