「ディスクの空き容量が残りわずかです」 「どのフォルダが容量を食っているか分からない…」 「ログファイルが知らないうちに巨大化していた!」
Linuxサーバーを運用していると、必ず遭遇するストレージ問題。 容量不足は、システムダウンやサービス停止につながる重大な問題です。
でも、Linuxには強力な容量確認コマンドがたくさんあります。 df
、du
、ncdu
、baobab
… 使い方を知れば、容量管理は怖くありません。
この記事では、Linuxのストレージ容量を確認する全方法を、 初心者にも分かりやすく、実例たっぷりで解説します。
容量不足でシステムが止まる前に、適切な監視と管理を始めましょう!
1. 【基本】dfコマンド:ディスク全体の使用状況

💾 dfコマンドの基本
df = disk free(ディスクの空き容量)
最も基本的で、最もよく使うコマンドです。
# 基本形
df
# 実行結果例
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 20511312 8123456 11339280 42% /
/dev/sda2 103081248 45678912 52161672 47% /home
tmpfs 2097152 0 2097152 0% /dev/shm
💾 人間が読みやすい形式で表示(-h オプション)
最もよく使う形式:
df -h
# 実行結果(読みやすい!)
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 7.8G 11G 42% /
/dev/sda2 99G 44G 50G 47% /home
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 500G 380G 95G 80% /data
単位の意味:
- K:キロバイト
- M:メガバイト
- G:ギガバイト
- T:テラバイト
💾 便利なオプション一覧
# ファイルシステムタイプも表示
df -T
# 結果
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 20G 7.8G 11G 42% /
/dev/sda2 ext4 99G 44G 50G 47% /home
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
# 特定のファイルシステムタイプのみ
df -t ext4
# iノード使用状況
df -i
# 特定のディレクトリの情報
df -h /var/log
# すべてのファイルシステム(仮想FSも含む)
df -a
💾 実用的な使い方
容量が逼迫しているパーティションを見つける:
# 使用率でソート(80%以上を警告)
df -h | awk '$5+0 > 80 {print $0}'
# 使用率が高い順に表示
df -h | grep -v "Filesystem" | sort -k5 -rn
# 残り容量が少ない順
df -h | grep -v "Filesystem" | sort -k4 -h
2. duコマンド:ディレクトリごとの使用量
📁 duコマンドの基本
du = disk usage(ディスク使用量)
どのディレクトリが容量を使っているか調べる時に使います。
# カレントディレクトリの使用量
du
# 人間が読みやすい形式
du -h
# サマリーのみ(合計だけ)
du -sh
# 実行例
du -sh /var/log
# 結果:1.5G /var/log
📁 階層を指定して調査
# 1階層のみ表示(最もよく使う)
du -h --max-depth=1 /
# または
du -h -d 1 /
# 実行結果例
8.0K /srv
4.0K /media
16K /lost+found
7.8G /usr
1.5G /var
234M /boot
456M /opt
2.3G /home
📁 大きいディレクトリを見つける
容量を食っているディレクトリTOP10:
# TOP10を表示
du -h --max-depth=1 / 2>/dev/null | sort -rh | head -10
# /var配下で大きいフォルダを探す
du -h --max-depth=2 /var | sort -rh | head -10
# 100MB以上のディレクトリのみ表示
du -h --threshold=100M /
📁 特定ファイルの容量確認
# ログファイルの容量確認
du -sh /var/log/*.log
# 拡張子別に集計
find /home -type f -name "*.jpg" -exec du -ch {} + | grep total$
# 古いファイルの容量
find /var/log -type f -mtime +30 -exec du -ch {} + | grep total$
3. 【応用】便利な容量確認ツール

🔧 ncdu:インタラクティブな容量分析
ncduのインストール:
# Ubuntu/Debian
sudo apt-get install ncdu
# CentOS/RHEL/Fedora
sudo yum install ncdu
# または
sudo dnf install ncdu
# Arch Linux
sudo pacman -S ncdu
使い方:
# 基本的な使用
ncdu /
# 読み取り専用モード(削除を防ぐ)
ncdu -r /
# エクスポート機能
ncdu -o report.json /
操作方法:
- 矢印キー:ナビゲーション
- Enter:ディレクトリに入る
- d:削除(確認あり)
- q:終了
- ?:ヘルプ
🔧 dust:Rustで書かれた高速ツール
# インストール(cargo必要)
cargo install du-dust
# 使用例
dust /home
dust -d 3 / # 3階層まで表示
🔧 duf:モダンなdf代替ツール
# インストール
# Ubuntu/Debian (snap)
sudo snap install duf
# 使用例
duf
# 出力例(カラフルで見やすい)
╭───────────────────────────────────────────────────────────╮
│ 5 local devices │
├───────────────┬────────┬────────┬────────┬──────┬────────┤
│ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │
├───────────────┼────────┼────────┼────────┼──────┼────────┤
│ / │ 20.0G │ 7.8G │ 11.0G │ 42% │ ext4 │
│ /home │ 99.0G │ 44.0G │ 50.0G │ 47% │ ext4 │
╰───────────────┴────────┴────────┴────────┴──────┴────────╯
4. GUI(グラフィカル)ツールでの確認
🖥️ GNOME Disks(ディスク)
Ubuntu/Fedora標準搭載:
# 起動方法
gnome-disks
# インストール(必要な場合)
sudo apt-get install gnome-disk-utility
特徴:
- パーティション管理も可能
- S.M.A.R.T.情報表示
- ベンチマーク機能
🖥️ Baobab(ディスク使用量アナライザー)
# 起動
baobab
# インストール
sudo apt-get install baobab
特徴:
- 円グラフで視覚化
- リングチャート表示
- リモートフォルダ対応
🖥️ KDE Filelight
# KDE環境向け
sudo apt-get install filelight
特徴:
- 同心円グラフ
- 直感的な操作
- 高速スキャン
5. システム全体の容量分析

📊 どこが容量を使っているか特定
よくある容量消費元:
# 1. ログファイル
du -sh /var/log/*
# 2. パッケージキャッシュ
# APT (Debian/Ubuntu)
du -sh /var/cache/apt/archives
# YUM/DNF (RHEL/CentOS)
du -sh /var/cache/yum
du -sh /var/cache/dnf
# 3. テンポラリファイル
du -sh /tmp
du -sh /var/tmp
# 4. データベース
du -sh /var/lib/mysql
du -sh /var/lib/postgresql
# 5. Dockerイメージ/コンテナ
docker system df
du -sh /var/lib/docker
# 6. ユーザーホーム
du -sh /home/*
# 7. snapパッケージ
du -sh /var/lib/snapd
📊 隠れた大容量ファイルを見つける
# 1GB以上のファイルを探す
find / -type f -size +1G 2>/dev/null
# サイズ順に表示
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh
# 削除されたが開いているファイル
lsof | grep deleted | awk '{print $2}' | xargs -I {} ls -lh /proc/{}/fd/ 2>/dev/null
6. 容量監視の自動化
🤖 シェルスクリプトで監視
容量監視スクリプト:
#!/bin/bash
# disk_monitor.sh
THRESHOLD=80 # 警告閾値(%)
EMAIL="admin@example.com"
# 各パーティションをチェック
df -h | grep -v "Filesystem" | while read line; do
usage=$(echo $line | awk '{print $5}' | sed 's/%//')
partition=$(echo $line | awk '{print $1}')
if [ $usage -ge $THRESHOLD ]; then
echo "警告: $partition の使用率が ${usage}% に達しています" | \
mail -s "ディスク容量警告" $EMAIL
fi
done
🤖 cronで定期実行
# crontabに追加
crontab -e
# 毎日朝9時に実行
0 9 * * * /home/user/disk_monitor.sh
# 1時間ごとに実行
0 * * * * /home/user/disk_monitor.sh
# 容量レポートを毎週月曜日に生成
0 0 * * 1 df -h > /var/log/disk_report_$(date +\%Y\%m\%d).log
🤖 ZabbixやNagiosでの監視
Zabbixテンプレート例:
# ディスク使用率監視
- key: vfs.fs.size[/,pused]
trigger: "{host:vfs.fs.size[/,pused].last()}>80"
severity: WARNING
- key: vfs.fs.size[/,pused]
trigger: "{host:vfs.fs.size[/,pused].last()}>90"
severity: HIGH
7. 容量不足時の対処法
🧹 不要ファイルのクリーンアップ
1. パッケージキャッシュのクリア:
# Debian/Ubuntu
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
# RHEL/CentOS
sudo yum clean all
sudo dnf clean all
# Arch
sudo pacman -Sc
2. ログファイルの整理:
# 古いログを削除
find /var/log -type f -name "*.log" -mtime +30 -delete
# ログローテーション強制実行
sudo logrotate -f /etc/logrotate.conf
# journalログのクリーンアップ
sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=500M
3. テンポラリファイルの削除:
# /tmpのクリーンアップ(要注意)
find /tmp -type f -atime +7 -delete
# システムテンポラリ
sudo rm -rf /var/tmp/*
🧹 Dockerの容量削減
# 未使用のコンテナ、イメージ、ボリューム削除
docker system prune -a
# より詳細な削除
docker container prune # 停止コンテナ
docker image prune -a # 未使用イメージ
docker volume prune # 未使用ボリューム
docker network prune # 未使用ネットワーク
# 容量確認
docker system df
🧹 大容量ファイルの圧縮
# ログファイルを圧縮
gzip /var/log/oldlog.log # .gzファイルになる
# tarでアーカイブ化
tar -czf backup.tar.gz /path/to/directory
# 圧縮率の高いxz形式
tar -cJf backup.tar.xz /path/to/directory
8. ファイルシステム別の確認方法

🗄️ ext4ファイルシステム
# ファイルシステム情報
sudo tune2fs -l /dev/sda1
# 使用ブロック数
sudo dumpe2fs /dev/sda1 | grep -i "block count"
# フラグメンテーション確認
sudo e4defrag -c /dev/sda1
🗄️ XFSファイルシステム
# 容量情報
sudo xfs_info /dev/sda1
# 詳細な使用状況
sudo xfs_db -r -c "freesp -s" /dev/sda1
# フラグメンテーション
sudo xfs_db -r -c frag /dev/sda1
🗄️ Btrfsファイルシステム
# 容量使用状況
sudo btrfs filesystem show
sudo btrfs filesystem df /
# デバイスごとの使用量
sudo btrfs device stats /
# スナップショットの容量
sudo btrfs subvolume list /
🗄️ ZFSファイルシステム
# プールの状態
zpool list
zpool status
# データセットの使用量
zfs list
zfs list -t snapshot # スナップショット
# 詳細情報
zfs get all poolname/dataset
9. トラブルシューティング
❌ dfとduの結果が一致しない
原因と対策:
# 1. 削除されたが開いているファイル
lsof | grep deleted
# プロセスを再起動して解放
sudo systemctl restart サービス名
# 2. マウントポイントの隠れたファイル
# 一時的にアンマウントして確認
sudo umount /mount/point
ls -la /mount/point
sudo mount /mount/point
# 3. 予約ブロック(ext4)
# 予約領域を確認
sudo tune2fs -l /dev/sda1 | grep "Reserved"
# 予約領域を減らす(1%に)
sudo tune2fs -m 1 /dev/sda1
❌ “No space left on device”なのに容量がある
iノード不足の可能性:
# iノード使用状況確認
df -i
# iノードを多く使っているディレクトリを探す
for i in /*; do
echo "$i: $(find $i -xdev -type f | wc -l)"
done
# 小さいファイルが大量にある場合の対処
# セッションファイルなどをクリーンアップ
find /var/lib/php/sessions -type f -delete
❌ 容量があるのに書き込めない
# 1. Read-onlyマウントの確認
mount | grep " ro,"
# 再マウント
sudo mount -o remount,rw /
# 2. クォータ制限の確認
quota -v
repquota -a
# 3. SELinuxの確認(RHEL系)
getenforce
# 一時的に無効化
sudo setenforce 0
10. ベストプラクティスとTips
💡 定期的な監視
推奨する監視頻度:
# 日次チェック項目
- ルートパーティション使用率
- /varの増加率
- ログファイルサイズ
# 週次チェック項目
- 各ユーザーの使用量
- バックアップ領域
- データベースサイズ
# 月次チェック項目
- 全体的な増加傾向
- 不要ファイルのクリーンアップ
- パーティション再構成の検討
💡 容量計画
容量見積もりの目安:
# システム領域(/)
最小:10GB
推奨:20-30GB
# /var
ログが多い:50GB以上
通常:20GB
# /home
ユーザー数 × 5-10GB
# 余裕率
常に20-30%の空きを維持
💡 便利なエイリアス
# ~/.bashrcに追加
alias df='df -h'
alias du='du -h'
alias dus='du -sh * | sort -h'
alias duf='du -sh * | sort -rh | head -10'
# ディスク使用量TOP10
alias disktop='du -hs * | sort -rh | head -10'
# 容量確認関数
checkdisk() {
echo "=== Disk Usage ==="
df -h
echo ""
echo "=== Top 10 Directories ==="
du -h --max-depth=1 / 2>/dev/null | sort -rh | head -10
}
まとめ:容量管理は予防が大切!
Linuxのストレージ容量確認、意外と多くの方法がありましたね。 でも、基本はdf
とdu
の2つのコマンドです。
重要ポイントのおさらい:
✅ 基本コマンド
df -h
:全体の使用状況du -sh
:ディレクトリごとの使用量- 組み合わせて原因特定
✅ 便利なツール
- ncdu:インタラクティブ分析
- baobab:GUI可視化
- duf:モダンな表示
✅ 監視の自動化
- スクリプト+cron
- 閾値を超えたら通知
- 定期的なレポート生成
✅ トラブル対処
- ログローテーション
- キャッシュクリア
- 不要ファイル削除
黄金律:
使用率80%で警告
使用率90%で緊急対応
常に20%以上の空きを維持
コメント