こんにちは!いつもブログを読んでいただき、ありがとうございます。
今回は、主題2.04「システムの保守と運用管理」の中盤、2.04.3 ユーザへの通知 と 2.04.4 リソース使用状況の把握 を解説していきます!
「メンテナンス前にログイン中のユーザに連絡するにはどうするの?」「CPUやメモリの使用率を確認するコマンドが多すぎてわからない!」——そんな疑問を持っている方も多いと思います。特に 2.04.4 はシラバスに載っているコマンドが多いので、「何を使えばどの情報がわかるか」という使い分けをセットで覚えていきましょう!
LinuC 201全体の学習ロードマップはこちらにまとめています♪
📋 試験の重要情報と学習のゴール
| 主題番号 | テーマ | 重要度 |
|---|---|---|
| 2.04.3 | ユーザへの通知 | 1(5段階中) |
| 2.04.4 | リソース使用状況の把握 | 3(5段階中) |
2.04.3は重要度1と低めですが、コマンドの数が少なく覚えやすいのでしっかり得点源にしましょう。2.04.4は重要度3でコマンドの種類が最も多い範囲のひとつです。比較表を活用して整理していきますよ!
wall — ログイン中の全ユーザにメッセージを送る
wall(write all)は、現在ログインしている全ユーザのターミナルにメッセージをブロードキャストするコマンドです。
# コマンドラインから直接メッセージを送る
wall "システムは30分後にメンテナンスのため再起動します。作業を保存してください。"
# ファイルの内容をメッセージとして送る
wall < /etc/motd
📝 試験ポイント:
wallは “write all” の略です。ログイン中の全員に届きます。
write — 特定ユーザにメッセージを送る
# 特定ユーザにメッセージを送る
write username
# 特定のターミナルを指定して送る(同じユーザが複数端末でログイン中の場合)
write username pts/1
実行後はメッセージを入力して Ctrl+D で送信します。
mesg — メッセージの受信を制御する
# メッセージ受信を許可する
mesg y
# メッセージ受信を拒否する
mesg n
# 現在の設定を確認する
mesg
📝 試験ポイント:
mesg nを設定したユーザにはwriteが届きませんが、rootが送るwallは届きます(環境による)。
ログイン前後のメッセージファイル(試験頻出!)
| ファイル | 表示タイミング | 内容 |
|---|---|---|
/etc/motd | ログイン後に表示 | Message of the Day(日次メッセージ) |
/etc/issue | ログイン前(ローカル)に表示 | ログインプロンプト前のメッセージ |
/etc/issue.net | ログイン前(SSH等リモート)に表示 | リモートログイン前のメッセージ |
★ここがポイント!
/etc/motd(motd = Message Of The Day)はログイン「後」、/etc/issueはログイン「前」です。前後の違いを確実に覚えましょう!
shutdown — シャットダウン時のメッセージ通知
shutdown コマンドはシャットダウン時に全ログインユーザへ自動でメッセージを通知します。
# 30分後にシャットダウン(メッセージ付き)
shutdown -h +30 "30分後にシャットダウンします。作業を保存してください。"
# 今すぐシャットダウン
shutdown -h now
# 再起動
shutdown -r +10 "10分後に再起動します。"
# スケジュールされたシャットダウンをキャンセルする
shutdown -c
2.04.3 まとめ
| コマンド / ファイル | 用途 |
|---|---|
wall | ログイン中の全ユーザにメッセージを送る |
write ユーザ名 | 特定ユーザにメッセージを送る |
mesg y/n | メッセージ受信の許可 / 拒否 |
/etc/motd | ログイン後に表示されるメッセージ |
/etc/issue | ログイン前(ローカル)に表示されるメッセージ |
/etc/issue.net | ログイン前(リモート)に表示されるメッセージ |
まず「何を確認するか」で使うコマンドを決める
コマンドの数が多くて「正直ややこしい…」と感じやすい範囲ですが、「何のリソースを確認したいか」で引き出しを整理すると一気に覚えやすくなります。
| 確認したいこと | 主なコマンド |
|---|---|
| システム全体のリアルタイム監視 | top、htop |
| 現在の負荷・ログインユーザ確認 | uptime、w、who |
| CPU・メモリ・スワップ統計 | vmstat |
| メモリ使用量 | free |
| ディスクI/O | iostat、iotop |
| 過去のリソース履歴 | sar |
| プロセス一覧 | ps |
| コマンドの定期実行・監視 | watch |
| ネットワーク帯域の監視 | iftop、iptraf |
| 開いているファイル / ポート | lsof |
uptime / w / who — 負荷とログインユーザの確認(試験頻出!)
通知を送る前に「今誰がログインしているか」を確認するコマンドです。
# システムの稼働時間とロードアベレージを確認する
uptime
# 出力例: 14:30:00 up 5 days, 2 users, load average: 0.10, 0.15, 0.12
# 1分 5分 15分の平均負荷
# ログイン中のユーザと各ユーザのCPU使用状況・ロードアベレージを確認する
w
# ログイン中のユーザの一覧だけ確認する(シンプルに)
who
| コマンド | 表示内容 | 違い |
|---|---|---|
uptime | 稼働時間とロードアベレージのみ | 最もシンプル |
who | ログインユーザの一覧(端末・ログイン時刻) | ユーザ一覧に特化 |
w | ログインユーザ+各ユーザのCPU使用状況+ロードアベレージ | 最も情報が多い |
📝 試験ポイント:ロードアベレージは「1分・5分・15分」の平均値が表示されます。CPUコア数が基準で、1コアのサーバなら値が
1.0を超え続けると過負荷の目安です。topの上部にも同じロードアベレージが表示されるので、uptimeと同じ値を確認できます。
top / htop — システム全体のリアルタイム監視
top はCPU・メモリ・プロセスの使用状況をリアルタイムで表示する定番ツールです。
# top を起動する
top
# 更新間隔を指定する(1秒ごと)
top -d 1
# 特定ユーザのプロセスのみ表示する
top -u username
# バッチモード(スクリプトから1回だけ出力)
top -b -n 1
top 起動中の操作キー
| キー | 動作 |
|---|---|
q | 終了 |
k | プロセスをkillする(PIDを入力) |
M | メモリ使用量でソート |
P | CPU使用率でソート(デフォルト) |
1 | CPUコアごとの使用率を表示 |
top の出力の読み方(ここ、試験に出ます!)
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 1.0 wa, 0.0 hi, 0.0 si
| 表示 | 意味 |
|---|---|
us | ユーザ空間のCPU使用率 |
sy | カーネル(システム)のCPU使用率 |
id | アイドル(空き)CPU |
wa | I/O待ちのCPU(大きいとディスクがボトルネックの疑い) |
★ここがポイント!
wa(I/O wait)が大きい場合はディスクのボトルネックが疑われます。id(idle)が100に近いほどCPUは余裕がある状態です。
📝
htopはtopの改良版です。色付き表示・マウス操作対応・見やすいUIが特徴です。機能は同様ですが、よりインタラクティブに操作できます。なおhtopは標準でインストールされていない環境もあるため、試験では基本的にtopが前提です。
watch — コマンドを定期実行して画面を更新する(試験頻出!)
watch はコマンドを一定間隔で繰り返し実行し、画面をリアルタイムで更新するツールです。単体のコマンドにリアルタイム監視の機能をつけられるため、試験でよく問われます。
# free コマンドを2秒ごとに更新して表示する(デフォルトは2秒)
watch free -h
# 更新間隔を指定する(1秒ごと)
watch -n 1 free -h
# 変化した部分をハイライトする
watch -d free -h
# df の空き容量を監視する
watch -n 5 df -h
📝 試験ポイント:「
freeをリアルタイムで監視するコマンドはどれか」という問いに対してwatch freeが正解になります。watch単体では何もしないため、後ろに実行したいコマンドをセットで指定する点を覚えておきましょう。
vmstat — CPU・メモリ・I/O・スワップの統計
vmstat はメモリ・スワップ・CPU・ブロックI/Oの統計を表示します。
# 現在の統計を1回表示する
vmstat
# 2秒ごとに5回表示する
vmstat 2 5
# メモリ情報をMB単位で表示する
vmstat -S M
vmstat の出力の重要な列:
| 列 | 意味 |
|---|---|
r | 実行待ちプロセス数(大きいとCPUが追いついていない) |
b | I/O待ちでブロックされているプロセス数 |
si | スワップイン(ディスク→メモリ)KB/s |
so | スワップアウト(メモリ→ディスク)KB/s |
wa | I/O待ちCPU % |
📝 試験ポイント:
si(スワップイン)とso(スワップアウト)が大きい値の場合、メモリ不足でスワップが多発していることを示します。パフォーマンス問題の重要なサインです。
free — メモリ使用量の確認
# 人間が読みやすい単位で表示する(自動でKB/MB/GBを選択)
free -h
# MB単位で表示する
free -m
# 3秒ごとに繰り返し表示する
free -h -s 3
📝 試験ポイント:出力の
available(実際に利用可能なメモリ)はfreeの値よりも重要です。buff/cacheは必要に応じてメモリとして使えるため、availableが判断の基準になります。
iostat / iotop — ディスクI/Oの確認
# CPU統計とディスクI/O統計を表示する
iostat
# 拡張統計を表示する(%util が重要)
iostat -x
# 2秒ごとに5回表示する
iostat -x 2 5
# プロセスごとのディスクI/Oをリアルタイムで表示する(root権限が必要)
iotop
iostat -x の重要な列:
| 列 | 意味 |
|---|---|
%util | ディスクの使用率(100%に近いとボトルネック) |
await | I/O要求の平均待ち時間(ms) |
r/s | 1秒あたりの読み込み要求数 |
w/s | 1秒あたりの書き込み要求数 |
📝 試験ポイント:
iostatはディスク全体の統計、iotopはどのプロセスがディスクI/Oを多く使っているかを確認するコマンドです。使い分けを覚えておきましょう。
sar — 過去のリソース履歴を確認する(唯一の履歴系!)
sar(System Activity Reporter)は、過去のシステムリソース統計を記録・確認するツールです(sysstat パッケージに含まれます)。
# CPU使用率の履歴を表示する
sar
# メモリ使用量の履歴
sar -r
# ディスクI/Oの履歴
sar -b
# ネットワーク統計の履歴
sar -n DEV
# 2秒ごとに5回取得する
sar -u 2 5
# 過去の特定日のデータを確認する
sar -f /var/log/sa/sa01
★ここがポイント!
sarは過去のデータを遡って確認できる唯一のコマンドです。「昨夜ピーク時に何があったか」を調べる場面で活躍します。データは/var/log/sa/に蓄積されます。
⚠️
sarを使うための前提条件:sarを利用するにはsysstatパッケージのインストールと、データ収集サービス(sysstat)の有効化が必要です。「sarを実行しても何も表示されない」というトラブルの原因として試験でも問われることがあるので、セットで覚えておきましょう。# sysstat サービスを有効化して起動する systemctl enable --now sysstat
ps — プロセスの状態確認(BSD形式と System V 形式)
ps はプロセスの一覧を確認するコマンドです。オプションの書き方にBSD形式とSystem V形式の2種類があり、どちらも試験に出ます。
# BSD形式(最もよく使う)
ps aux
# System V 形式(ps aux とほぼ同じ情報が得られる)
ps -ef
# プロセスをツリー形式で表示する
ps axjf
# 特定ユーザのプロセスのみ表示する
ps -u username
# 特定のプロセス名で絞り込む
ps aux | grep httpd
ps aux と ps -ef の比較(試験頻出!)
| 項目 | ps aux | ps -ef |
|---|---|---|
| 形式 | BSD形式 | System V(UNIX)形式 |
| CPU・メモリ使用率 | ✅ 表示あり(%CPU・%MEM) | ❌ 表示なし |
| 親プロセスID(PPID) | ❌ 表示なし | ✅ 表示あり(PPID列) |
📝 試験ポイント:
ps auxでCPU・メモリ使用率が確認できる点と、ps -efでPPID(親プロセスID)が確認できる点を区別して覚えましょう。ここはそのまま得点に直結するので、しっかり押さえておきましょう!
ps aux の出力の見方
| 列 | 意味 |
|---|---|
%CPU | CPU使用率 |
%MEM | メモリ使用率 |
STAT | プロセスの状態(R=実行中、S=スリープ、Z=ゾンビ、D=I/O待ちなど) |
📝 試験ポイント:
STAT列のZ(ゾンビプロセス)は親プロセスが終了ステータスを回収していない状態です。大量のゾンビプロセスはシステム問題の兆候です。
iftop / iptraf — ネットワーク帯域の監視
# インターフェースごとのネットワーク帯域をリアルタイムで表示する
iftop -i enp1s0
# ネットワークの通信量をリアルタイムで対話表示する
iptraf-ng
| コマンド | 特徴 |
|---|---|
iftop | 接続先ホストごとの帯域使用量を確認 |
iptraf-ng | プロトコル別・インターフェース別の詳細なトラフィック統計 |
lsof — 開いているファイルの確認
lsof(LiSt Open Files)は、プロセスが開いているファイルやネットワーク接続を確認するツールです。そのまま実行すると大量の情報が出力されるため、grep と組み合わせて使うのが基本です。
# 特定ポートを使用しているプロセスを確認する
lsof -i :80
# 特定ユーザが開いているファイルを確認する
lsof -u username
# 削除済みだがまだ使用中のファイルを確認する(ディスク容量が解放されない原因調査)
lsof | grep deleted
ディスク使用量の確認(df / du)
# ファイルシステムの使用量を確認する(df)
df -h # 人間が読みやすい単位で表示
df -i # inode の使用状況を確認
# ディレクトリのサイズを確認する(du)
du -sh /home/user/ # 合計サイズのみ表示
du -sh * # カレントの各ファイル/ディレクトリのサイズ
# 使用量の多いディレクトリを探す(du + sort)
du -sh /var/* | sort -rh | head -10
| コマンド | 用途 |
|---|---|
df | Disk Free:ファイルシステム単位の空き容量 |
du | Disk Usage:ディレクトリ/ファイル単位の使用量 |
⚠️ 引っかけポイント:
dfはファイルシステム全体の使用量、duは特定ディレクトリ以下の合計サイズです。「ディスクが埋まっているのにどのディレクトリが原因か調べる」にはduを使います。
過去問を解いていて「ここ、引っかかりそう!」と感じたパターンをまとめました。試験直前に見直してくださいね。
| # | 間違いパターン | 正しい理解 |
|---|---|---|
| 1 | /etc/motd はログイン前に表示される | ❌ /etc/motd はログイン後。ログイン前は /etc/issue |
| 2 | vmstat の si/so が大きい → CPU問題 | ❌ si/so はスワップの出入り → メモリ不足のサイン |
| 3 | top の wa が高い → メモリ不足 | ❌ wa(I/O wait)が高いのはディスクI/Oのボトルネック |
| 4 | sar でリアルタイム監視をする | ❌ sar は過去データの確認が主な用途。リアルタイムは top や vmstat |
| 5 | df でどのディレクトリが容量を使っているか調べる | ❌ df はファイルシステム単位。ディレクトリ単位は du |
| 6 | ps aux で親プロセスID(PPID)を確認する | ❌ PPIDが表示されるのは ps -ef(System V形式) |
| 7 | watch 単体でリソースを監視できる | ❌ watch は「コマンドを定期実行するラッパー」。watch free -h のように対象コマンドをセットで指定する |
私がメインで使っている参考書と問題集です。よければ一緒に勉強していきましょう(笑)
【PR】▶ あずき本(Linux教科書 LinuCレベル2 Version 10.0対応) 概念や仕組みをしっかり理解したいときの辞書代わりに。まずここで基礎を固めます。
リンク
【PR】▶ スピードマスター LinuCレベル2問題集(白本) 本番に近い難易度で問題演習したいときに。あずき本で理解したあとに使うと定着度が上がります。
リンク
お疲れ様でした!今回のポイントをおさらいしましょう。
- 通知コマンド:全員には
wall、特定ユーザにはwrite、受信拒否はmesg n - メッセージファイル:ログイン前 =
/etc/issue(ローカル)//etc/issue.net(リモート)、ログイン後 =/etc/motd - ロードアベレージ確認:
uptime・w・whoの使い分けを押さえる watch:コマンドを定期実行するラッパー。watch free -hのようにセットで使うtopのwa:高いとディスクI/Oがボトルネックvmstatのsi/so:大きいとメモリ不足でスワップ多発sar:唯一過去データを遡れる。データは/var/log/sa/に蓄積ps auxvsps -ef:CPU/メモリはaux、PPIDは-efdfvsdu:ファイルシステム単位はdf、ディレクトリ単位はdu
皆さんにとって、今日も素敵な1日になりますように!
参考:LPI-Japan 公式試験範囲 https://linuc.org/linuc2/range/201.html
※本記事はLinuC レベル2 Version 10.0 の出題範囲をもとに作成しています。