この記事はPart 8のLFCAシリーズの一部であり、この部分では、Linuxシステムで基本的なシステムメトリックを監視し、管理タスクをスケジュールする一般的なシステム管理コマンドについて紹介します。
システムのパフォーマンスを把握することは、システム管理者として引き受ける必要のある重要な役割の1つです。確かに、オープンソースのモニタリングツール(GrafanaやNagiosなど)はシステムメトリックを監視するために十分です。
幸いにも、Linuxにはいくつかのコマンドラインユーティリティが用意されており、CPUおよびメモリの利用状況や実行中のプロセスなど、重要なシステム統計情報を一覧できます。
基本的なシステムメトリクスを監視するのに役立ついくつかのコマンドラインツールを簡単に見てみましょう:
1. uptimeコマンド
uptimeコマンドは、システムが電源を入れてからの稼働時間を提供します。コマンドオプションを指定しない場合、現在時刻、システムの稼働時間、ログインしているユーザー、および平均負荷が表示されます。
$ uptime
-s
オプションを使用すると、システムの日付とシステムの起動時間が表示されます。
$ uptime -s
-p
オプションを使用して、稼働時間のみを取得します。
$ uptime -p

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

3. topコマンド
topコマンドは2つのことを行います:リアルタイムのシステムメトリクスの概要を提供し、Linuxカーネルによって管理されている現在実行中のプロセスを表示します。
実行中のプロセスを表示するだけでなく、topコマンドは、非常に上部に配置されているuptimeおよびfreeコマンドによって提供される出力を組み合わせます。
$ top

topコマンドの改良版は、統計情報を直感的かつ人間が読める形式で表示するhtopユーティリティです。
Linuxでは、htopをインストールするには、次のコマンドを使用できます:
$ sudo apt install htop [On Debian-based] $ sudo dnf install htop [On RHEL-based]
htopを起動するには、単純に次のコマンドを実行します:
$ htop

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

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

システム管理タスクの自動化
予め定義された時間にタスクやジョブをスケジュールすることは、どのシステム管理者も持っているべき基本的なスキルの一つです。バックアップや定期的な再起動など、定期的に実行する管理タスクをスケジュールしたい場合があります。
Cronはタスクを自動化するのに役立つタイムスケジューラです。cron機能にはcronデーモンと、その構成を読み取るためのテーブルセットであるcrontabが含まれています。crontabは実行されるタスクを記述します。
cronジョブを作成するには、まずそのアーキテクチャを理解する必要があります。cronジョブは、5つのフィールドに続いて実行されるコマンドまたはスクリプトで構成されています。cronジョブの各フィールドを示す図式表現を以下に示します。

いくつかの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

最初のパスは、バックアップファイルの完全なパスであり、downloads.tar.gzです。2番目のパスは、バックアップするディレクトリのパスを指します。
ファイルを保存するには、ESCを押してから:wq
と入力し、ENTERを押します。
次に、バックアップスクリプトに実行権限を割り当てます。これにより、cronユーティリティがスクリプトを実行できるようになります。
$ chmod +x backup.sh
スクリプトを実行するcronジョブを作成するには、次のコマンドを実行します。
$ crontab -e
バックアップスクリプトを毎日14:30に実行するようにcronジョブを定義します。
30 14 * * * /home/tecmint/backup.sh

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

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

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

もしあなたがもはやcronジョブを望まない場合、次のコマンドを使用して削除できます:
$ crontab -r
結論
システム管理者が日常的に実行する他のいくつかのタスクがあります。例えば在庫の確認などです。
Source:
https://www.tecmint.com/monitor-basic-system-metrics-in-linux/