「Ubuntuのディスク容量って、どこで確認すればいいの?」
ストレージの空き容量が少ないと、システムが不安定になったり、インストール作業が失敗したりします。
特にLinuxサーバーや開発環境では、ログファイルの蓄積や一時ファイルの増加で予想以上に容量を消費することがあります。
この記事では、Ubuntuでストレージの使用状況をチェックできる基本コマンドと便利なオプションをわかりやすく紹介します。
ストレージ確認が重要な理由

システムの安定性を保つため
ストレージ容量の監視は、以下のトラブルを防ぐために欠かせません:
容量不足で起こる問題
- システムの動作が重くなる
- アプリケーションがクラッシュする
- 新しいファイルの保存ができない
- アップデートやインストールが失敗する
- ログファイルの生成が止まり、トラブル診断が困難になる
定期確認のメリット
- トラブルを事前に防げる
- 容量を消費しているファイルやフォルダを特定できる
- システムのクリーンアップを計画的に実行できる
- パフォーマンスの低下を防げる
各コマンドの使い分け
Ubuntuには複数のストレージ確認コマンドがあり、それぞれ得意分野が異なります:
- df:全体的な空き容量の把握
- du:特定フォルダの詳細調査
- lsblk:ディスク構成の確認
- ncdu:視覚的な容量分析
この使い分けを理解することで、効率的なストレージ管理ができるようになります。
ディスク全体の使用状況を確認するコマンド

dfコマンドの基本使用法
df
コマンド(Disk Free)は、ファイルシステム全体の空き容量を表示する最も基本的なコマンドです。
基本構文:
df -h
実際の出力例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 27G 43% /
/dev/sda2 100G 45G 50G 47% /home
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 500G 200G 275G 42% /var/log
出力内容の詳細解説
項目 | 説明 | 注意点 |
---|---|---|
Filesystem | デバイス名またはファイルシステム | /dev/sdaX の形式が一般的 |
Size | パーティションの総容量 | 実際の利用可能容量とは異なる場合あり |
Used | 現在使用中の容量 | システム予約領域を含む |
Avail | 利用可能な空き容量 | 実際に使える容量 |
Use% | 使用率(パーセンテージ) | 80%を超えたら注意が必要 |
Mounted on | マウントポイント | ファイルシステムがマウントされている場所 |
dfコマンドの便利なオプション
特定のファイルシステムのみ表示:
# ローカルファイルシステムのみ表示
df -h -l
# 特定のマウントポイントのみ表示
df -h /home
# 特定のファイルシステムタイプのみ表示
df -h -t ext4
inode使用状況の確認:
# inodeの使用状況を確認
df -i
# 人間読みやすい形式でinode情報を表示
df -ih
実践的な使用例
システム全体の健康状態チェック:
# 使用率が高いパーティションを特定
df -h | awk 'NR>1 {if($5+0 > 80) print $0}'
# 空き容量が1GB未満のパーティションを警告
df -h | awk 'NR>1 {if($4+0 < 1) print "WARNING: " $0}'
ログファイル出力での活用:
# 日時付きでディスク使用量をログ出力
echo "$(date): $(df -h | grep '^/dev')" >> /var/log/disk-usage.log
dfコマンドで全体状況を把握したら、次は特定のディレクトリの詳細を調べる方法を学びましょう。
特定ディレクトリの使用量を確認するコマンド

duコマンドの基本使用法
du
コマンド(Disk Usage)は、特定のディレクトリやファイルがどれだけの容量を使用しているかを確認できます。
基本構文:
du -sh /path/to/directory
使用例:
# ホームディレクトリの使用量を確認
du -sh /home/username
# 現在のディレクトリの使用量を確認
du -sh .
# 複数のディレクトリを同時に確認
du -sh /home /var /tmp
duコマンドのオプション詳細
オプション | 説明 | 使用例 |
---|---|---|
-s | 合計のみ表示(summaryの略) | du -s /home |
-h | 人間が読みやすい単位で表示 | du -h /var/log |
-a | すべてのファイルを個別表示 | du -ah /etc |
-c | 総計を最後に表示 | du -ch /home/* |
–max-depth=N | 指定階層まで表示 | du -h --max-depth=2 / |
実践的な容量調査テクニック
ホームディレクトリ内の容量ランキング:
# サイズ順でソートして上位10個を表示
du -h --max-depth=1 /home/username | sort -hr | head -10
システム全体の大容量ディレクトリを特定:
# ルートから2階層まで調査して容量順表示
sudo du -h --max-depth=2 / 2>/dev/null | sort -hr | head -20
特定サイズ以上のディレクトリを検索:
# 1GB以上のディレクトリを検索
sudo du -h / 2>/dev/null | awk '$1 ~ /[0-9]+G/ {print $0}'
# 100MB以上のディレクトリを検索
sudo du -h / 2>/dev/null | awk '$1 ~ /[0-9][0-9][0-9]M|[0-9]+G/ {print $0}'
ログファイルの容量管理
ログディレクトリの詳細調査:
# ログファイルのサイズを詳しく確認
sudo du -ah /var/log | sort -hr | head -20
# 古いログファイルを特定
sudo find /var/log -name "*.log*" -size +100M -ls
アプリケーション別のログ使用量:
# Apache/Nginxのログ使用量
sudo du -sh /var/log/apache2 /var/log/nginx
# システムログの使用量
sudo du -sh /var/log/syslog* /var/log/kern.log*
マウント済みのブロックデバイス情報を確認する

lsblkコマンドの基本
lsblk
コマンド(List Block Devices)は、システムに接続されているストレージデバイスの構造を階層表示します。
基本構文:
lsblk
出力例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 50G 0 part /
└─sda3 8:3 0 449G 0 part /home
sdb 8:16 0 1T 0 disk
└─sdb1 8:17 0 1T 0 part /mnt/storage
sr0 11:0 1 1024M 0 rom
lsblkコマンドの便利なオプション
詳細情報の表示:
# ファイルシステム情報も表示
lsblk -f
# UUIDやラベル情報も表示
lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINT
# すべての情報を表示
lsblk -a
出力例(-fオプション使用時):
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat EFI 1234-5678 /boot/efi
├─sda2 ext4 root 12345678-1234-1234-1234-123456789012 /
└─sda3 ext4 home 87654321-4321-4321-4321-210987654321 /home
ストレージデバイスの分析
新しいディスクの認識確認:
# 新しいUSBドライブが認識されているか確認
lsblk | grep -E "sd[b-z]"
# パーティション情報の詳細
sudo fdisk -l
マウント状況の確認:
# マウントされていないパーティションを特定
lsblk | grep -v MOUNTPOINT | awk '$7=="" {print $1}'
# 手動マウントが必要なデバイスの確認
findmnt --verify
高度なストレージ分析ツール
ncduによる視覚的分析
ncdu
は対話的なディスク使用量分析ツールで、視覚的に容量を把握できます。
インストールと基本使用:
# ncduのインストール
sudo apt install ncdu
# ルートディレクトリから分析開始
sudo ncdu /
# ホームディレクトリの分析
ncdu /home/username
ncduの操作方法:
- 矢印キー:ディレクトリ間の移動
- Enter:ディレクトリに入る
- n:名前順ソート
- s:サイズ順ソート
- d:ファイル削除(要注意)
- q:終了
findコマンドでの大容量ファイル検索
サイズ別のファイル検索:
# 100MB以上のファイルを検索
sudo find / -size +100M -type f -exec ls -lh {} \; 2>/dev/null
# 1GB以上のファイルを検索
sudo find / -size +1G -type f -ls 2>/dev/null
# 特定ディレクトリ内の大きなファイル上位10個
sudo find /var -type f -exec du -h {} \; 2>/dev/null | sort -hr | head -10
日付別のファイル検索:
# 30日以上古いログファイル
sudo find /var/log -name "*.log" -mtime +30 -ls
# 今日作成されたファイル
find /tmp -type f -newermt "today" -ls
システム監視の自動化
定期実行用のスクリプト例:
#!/bin/bash
# disk-check.sh
# 使用率が80%を超えたら警告
df -h | awk 'NR>1 {
if($5+0 > 80)
print "WARNING: " $6 " is " $5 " full"
}'
# 1GB以上の大きなファイルをチェック
echo "Large files (>1GB):"
sudo find / -size +1G -type f -printf "%s %p\n" 2>/dev/null |
awk '{printf "%.1fGB %s\n", $1/1024/1024/1024, $2}' |
head -5
トラブルシューティングと最適化

容量不足時の緊急対応
一時ファイルのクリーンアップ:
# 一時ディレクトリのクリーンアップ
sudo find /tmp -type f -atime +7 -delete
sudo find /var/tmp -type f -atime +7 -delete
# ゴミ箱の完全削除
rm -rf ~/.local/share/Trash/*
システムログの整理:
# 古いログファイルの削除
sudo journalctl --disk-usage
sudo journalctl --vacuum-time=30d
# ローテートされたログの確認と削除
sudo find /var/log -name "*.gz" -mtime +30 -delete
パッケージキャッシュの管理
APTキャッシュのクリーンアップ:
# ダウンロードしたパッケージファイルの削除
sudo apt clean
# 不要なパッケージの削除
sudo apt autoremove
# キャッシュサイズの確認
du -sh /var/cache/apt/archives/
定期監視の設定
cronでの自動監視:
# crontabの編集
crontab -e
# 毎日朝9時にディスク使用量をチェック
0 9 * * * /usr/local/bin/disk-check.sh >> /var/log/disk-monitor.log 2>&1
まとめ
Ubuntuでストレージ容量を効果的に確認し管理するためのポイント:
基本的なコマンド
df -h
:ディスク全体の使用状況と空き容量の把握du -sh ディレクトリ
:特定フォルダの詳細な使用量確認lsblk -f
:ストレージデバイスの構成とマウント状況の確認
高度な分析ツール
ncdu
:対話的で視覚的な容量分析find
:サイズや日付を条件とした詳細検索- カスタムスクリプト:定期監視と自動化
効率的な使い分け
- 日常的な確認:
df -h
で全体状況をサッと把握 - 詳細調査:
du
とncdu
で問題箇所を特定 - トラブル時:
find
で大容量ファイルを緊急検索 - 構成確認:
lsblk
でデバイス構造を理解
コメント