まずこのコマンドで全体を把握する
ディスク残量を確認するとき、最初に打つべきコマンドは df -h です。-h(human-readable)オプションを付けることで、容量が GB・MB 単位で読みやすく表示されます。
df -h
実行例(Ubuntu 24.04 / Rocky Linux 9 環境):
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/nvme0n1p3 200G 45G 155G 23% /
/dev/nvme0n1p1 511M 12M 499M 3% /boot/efi
tmpfs 3.9G 1.2M 3.9G 1% /run
tmpfs 16G 0 16G 0% /dev/shm
古い記事では /dev/hda(IDE)や /dev/sda(SATA/SAS)のデバイス名が登場しますが、現代のサーバーでは NVMe SSD の /dev/nvme0n1 が主流です。また tmpfs の行はディスク実体ではなくメモリ上の仮想ファイルシステムで、systemd が自動マウントしています。残量チェックの対象は実ストレージのマウントポイントに絞って確認してください。
デバイス構成の全体像を先に確認する
どのデバイスがどのパーティションに分かれているかを確認するには lsblk が便利です。LVM・RAID・NVMe など複雑な構成のサーバーでは、df の出力だけではデバイスの全体像が把握しにくいため、先にこちらで確認しておくと作業が迷子になりません。
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINTS
nvme0n1
├─nvme0n1p1 vfat XXXX-XXXX /boot/efi
├─nvme0n1p2 xfs xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /boot
└─nvme0n1p3 LVM2_member
├─rl-root xfs /
└─rl-home xfs /home
-f オプションでファイルシステム種別と UUID も合わせて表示されます。増設・マウント作業の前に実行してデバイス名の誤認を防ぐ習慣をつけておくと安心です。
ファイルシステム種別を確認してから増設計画を立てる
df -hT を使うと、各パーティションのファイルシステム種別(ext4・xfs・btrfs など)を使用量と同時に確認できます。
df -hT
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/mapper/rl-root xfs 100G 28G 72G 28% /
/dev/nvme0n1p2 xfs 960M 226M 735M 24% /boot
/dev/mapper/rl-home xfs 200G 15G 185G 8% /home
tmpfs tmpfs 7.7G 0 7.7G 0% /dev/shm
ファイルシステム種別は増設・縮小の可否に直結します。XFS はオンライン拡張には対応していますが縮小はできません。ext4 は縮小可能ですがアンマウントが必要です。種別を把握せずに作業するとデータ消失に繋がるため、必ず事前確認を習慣にしてください。
どのディレクトリが容量を食っているか特定する
df -h で「/var が 90% 使用」とわかったら、次は du コマンドで原因を探します。まず該当パーティション直下のディレクトリを一覧してサイズ順に並べます。
du -sh /var/* 2>/dev/null | sort -rh | head -10
2>/dev/null はパーミッションエラーの出力を抑制します。ルート直下から全体を探す場合は /* を対象にします。
du -sh /* 2>/dev/null | sort -rh | head -10
ある運用現場では /var/log/journal が数十 GB に膨らんでいたケースがありました。systemd のジャーナルログはデフォルトで上限なしに蓄積されることがあります。/etc/systemd/journald.conf で上限を明示しておくことを推奨します。
# /etc/systemd/journald.conf
[Journal]
SystemMaxUse=500M
# 設定を反映してから現在の使用量を確認
sudo systemctl restart systemd-journald
journalctl --disk-usage
容量は足りているのにファイルが作れない場合はiノードを疑う
「ディスク残量に余裕があるのにファイルを作成できない」「No space left on device と表示されるが df -h では問題なし」という状況は iノードの枯渇が原因です。iノードはファイルのメタデータを管理する枠で、ファイルシステム作成時に上限が決まっています。df -i で使用率を確認します。
df -i
ファイルシス Iノード I使用 I残り I使用% マウント位置
/dev/nvme0n1p3 12845056 98432 12746624 1% /
/dev/sda1 262144 262144 0 100% /data
上の例の /data は I使用% が 100% で、容量があってもファイルを作れない状態です。メールスプール・セッションキャッシュ・一時ファイルが大量生成される環境では発生しやすいため、ディスク使用率と iノード使用率の両方を定期監視の対象に加えてください。iノードが枯渇してしまった場合、ext4 であれば tune2fs で調整できる場合がありますが、XFS では作り直しが必要です。早期検出が最良の対策です。
閾値を超えたら自動で通知する仕組みを作る
手動確認だけでは気づいたときには手遅れになることがあります。以下のスクリプトを cron に登録することで、使用率が閾値を超えたパーティションをメールで通知できます。
#!/bin/bash
THRESHOLD=80
MAILTO="admin@example.com"
df -hP | awk 'NR>1 {gsub(/%/,"",$5); if ($5+0 >= '"$THRESHOLD"') print $0}' | \
while read -r line; do
echo "ディスク使用率警告: $line" | mail -s "[DISK ALERT] $(hostname)" "$MAILTO"
done
-P(POSIX 形式)オプションを付けることで、マウントポイントのパスが長くても出力が折り返されずにスクリプトで安全にパースできます。
このスクリプトを /usr/local/bin/disk_check.sh として保存し、実行権限を付与してから cron に登録します。
chmod +x /usr/local/bin/disk_check.sh
# crontab -e で以下を追加(毎時0分に実行)
0 * * * * /usr/local/bin/disk_check.sh
Zabbix・Prometheus・Datadog などの監視ツールをすでに導入している環境では、エージェントのディスク監視テンプレートで同等のアラートを設定できます。上記のスクリプト方式は監視ツール未導入の小規模環境や、既存の監視範囲外のホストに素早くアラートを追加したい場合に有効です。iノード使用率も監視対象に加えるには、df -i の出力を同様に処理するスクリプトを別途用意するか、テンプレートの iノード監視項目を有効化してください。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
