【基本から応用まで】Ubuntuでストレージ容量を確認するコマンド一覧|ディスク使用状況を把握しよう

Linux

「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で全体状況をサッと把握
  • 詳細調査duncduで問題箇所を特定
  • トラブル時findで大容量ファイルを緊急検索
  • 構成確認lsblkでデバイス構造を理解

コメント

タイトルとURLをコピーしました