メインコンテンツへスキップ
初級8分で読める

dfとduでディスク使用量確認

Linuxのdfコマンドとduコマンドを使って、ディスクの空き容量やファイルの使用容量を確認する方法を実例を交えて詳しく解説します。

システム編dfduディスク容量ストレージ管理容量確認

🎯 この記事で学べること

  • 1
    `df`でディスク全体の空き容量を確認する方法をマスターできます
  • 2
    `du`で特定のディレクトリやファイルの使用量を調べられるようになります
  • 3
    容量を食っているファイルやディレクトリを素早く見つける方法を学べます
  • 4
    `-h`オプションで人間が読みやすい単位表示ができるようになります
  • 5
    ディスク容量不足の原因を特定し、対処する方法を身につけられます

読了時間: 約8

ディスクの空き容量、大丈夫ですか?

こんにちは!今回は、ディスクの容量を確認する2つの重要なコマンド、dfduについて学んでいきましょう。

「ディスクがいっぱいです」というエラーメッセージを見たことはありませんか?そんな時、何が容量を食っているのか調べる必要がありますよね。Windowsならプロパティで確認しますが、Linuxではdfduという便利なコマンドがあるんです!

  • df(disk free): ディスク全体の空き容量を確認
  • du(disk usage): 個々のファイルやフォルダの使用量を確認

この2つを使い分けることで、ディスク管理のプロになれますよ!

dfコマンド - ディスク全体を見渡そう

基本的な使い方

まずはdfコマンドで、システム全体のディスク使用状況を見てみましょう:

$ df

こんな感じで表示されます:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1      102400000 51200000  46000000  53% /
/dev/sda2       51200000 10240000  38400000  22% /home

数字が大きすぎて読みにくいですよね?これはKB(キロバイト)単位で表示されているからです。もっと読みやすくする方法があります!

人間が読みやすい表示(-hオプション)

-h(human-readable)オプションを付けると、GB、MB、KBなど適切な単位で表示してくれます:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        98G   49G   44G  53% /
/dev/sda2        49G  9.8G   37G  22% /home
tmpfs           7.8G     0  7.8G   0% /dev/shm

df -hは最もよく使うコマンドの一つです!「ディスクの空き容量どれくらい?」と聞かれたら、まずはこれを実行しましょう。

特定の場所だけチェック

全部じゃなくて、特定の場所だけ見たい時もありますよね:

# 現在いるディレクトリの容量
$ df -h .

# ホームディレクトリの容量
$ df -h ~

# /varディレクトリの容量
$ df -h /var

ファイルシステムの種類も見る(-Tオプション)

どんな種類のファイルシステムか気になる時は:

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       98G   49G   44G  53% /
/dev/sda2      ext4       49G  9.8G   37G  22% /home
tmpfs          tmpfs     7.8G     0  7.8G   0% /dev/shm

🎮 理解度チェック

Q1: df -hコマンドの-hオプションは何の略ですか?

df -hコマンドの-hオプションは何の略ですか?

duコマンド - 犯人を見つけ出そう!

dfでディスクがいっぱいだとわかったら、次はduで「何が容量を食っているか」を調べます!

基本的な使い方

現在のディレクトリ以下の使用量を表示:

$ du

これも数字が読みにくいので、-hオプションを使いましょう:

$ du -h
4.0K    ./config
120M    ./logs
2.5G    ./backup
50M     ./temp
2.7G    .

合計だけ見たい(-sオプション)

詳細はいらない、合計だけ知りたい時は:

# 現在のディレクトリの合計
$ du -sh

# 特定のディレクトリの合計
$ du -sh /var/log

# 複数指定もOK
$ du -sh /tmp /var/tmp /home/user/Downloads

du -sh *は「このディレクトリの中で何が一番容量を使っているか」を調べる定番コマンドです!

大きい順に並べる(超便利!)

容量の大きいものから順に見たい時は、sortコマンドと組み合わせます:

# 大きい順に並べてトップ10を表示
$ du -sh * | sort -hr | head -10

実行例:

2.5G    backup
850M    documents  
320M    videos
120M    logs
80M     pictures

ディレクトリの深さを制限

深い階層まで全部見ると情報が多すぎる時は:

# 1階層下まで
$ du -h --max-depth=1

# または短縮形
$ du -h -d 1

# 2階層下まで
$ du -h -d 2

🎮 理解度チェック

Q2: 現在のディレクトリの合計使用量だけを人間が読みやすい形式で表示するコマンドは?

現在のディレクトリの合計使用量だけを人間が読みやすい形式で表示するコマンドは?

実践!ディスク容量問題を解決する

シナリオ1: ディスクがいっぱい!原因を探る

# 1. まず全体を確認
$ df -h
# /が95%使用中!

# 2. ルートディレクトリから調査開始
$ sudo du -sh /* | sort -hr | head -10

# 3. 容量を食っているディレクトリを深堀り
$ sudo du -sh /var/* | sort -hr | head -10

# 4. さらに詳しく
$ sudo du -sh /var/log/* | sort -hr | head -10

シナリオ2: ホームディレクトリの整理

# 隠しファイルも含めて確認
$ du -sh ~/* ~/.* 2>/dev/null | sort -hr | head -20

# ダウンロードフォルダをチェック
$ du -sh ~/Downloads/* | sort -hr | head -10

# 古い大きなファイルを探す
$ find ~ -type f -size +100M -mtime +30 -exec ls -lh {} \;

シナリオ3: ログファイルの管理

# ログディレクトリの使用量
$ sudo du -sh /var/log/*

# 大きなログファイルを探す
$ sudo find /var/log -type f -size +100M

# 古いログを圧縮
$ sudo gzip /var/log/oldlog.log

便利なテクニック集

ディスク使用率が高い場所を監視

#!/bin/bash
# ディスク使用率80%以上で警告

THRESHOLD=80

df -h | grep -vE '^Filesystem|tmpfs' | while read line; do
    usage=$(echo $line | awk '{print $5}' | sed 's/%//')
    partition=$(echo $line | awk '{print $6}')
    
    if [ $usage -ge $THRESHOLD ]; then
        echo "警告: $partition は ${usage}% 使用中です!"
    fi
done

よく使うエイリアス

# ~/.bashrcに追加
alias duh='du -sh * | sort -hr | head -10'     # 大きいファイルTOP10
alias dfh='df -hT'                             # ディスク使用状況
alias ducurrent='du -sh .'                     # 現在のディレクトリ

特定の拡張子の合計サイズ

# すべての.logファイルの合計
$ find . -name "*.log" -type f -exec du -ch {} + | tail -1

# 画像ファイルの合計
$ find . -regex ".*\.\(jpg\|png\|gif\)" -exec du -ch {} + | tail -1

トラブルシューティング

dfとduの結果が合わない?

時々、dfduの結果が一致しないことがあります:

# 削除したけどまだ開いているファイルをチェック
$ sudo lsof | grep deleted

# プロセスを再起動して解放
$ sudo systemctl restart サービス名

iノードが足りない?

ディスク容量はあるのにファイルが作れない時:

# iノードの使用状況を確認
$ df -i

# 小さなファイルが大量にあるディレクトリを探す
$ for dir in /*; do 
    echo -n "$dir: "
    find "$dir" -xdev -type f | wc -l
done 2>/dev/null

🎮 理解度チェック

Q3: ディスクの使用率が90%を超えた時、最初に実行すべきコマンドの組み合わせは?

ディスクの使用率が90%を超えた時、最初に実行すべきコマンドの組み合わせは?

より高度な使い方

ncdu - インタラクティブなディスク使用量ビューアー

# インストール
$ sudo apt install ncdu  # Ubuntu/Debian
$ sudo yum install ncdu  # CentOS/RHEL

# 使い方
$ ncdu /

# 矢印キーで移動、Enterで詳細、dで削除

ディスク使用量レポートの自動化

#!/bin/bash
# 毎週月曜日に実行するレポート

echo "=== ディスク使用量レポート $(date) ===" > disk_report.txt
echo "" >> disk_report.txt

echo "【システム全体】" >> disk_report.txt
df -h >> disk_report.txt
echo "" >> disk_report.txt

echo "【大きいディレクトリTOP20】" >> disk_report.txt
du -sh /* 2>/dev/null | sort -hr | head -20 >> disk_report.txt

# メールで送信
mail -s "週次ディスクレポート" admin@example.com < disk_report.txt

📝 まとめ

今回はdfduコマンドについて学びました!

  • df: ディスク全体の空き容量を確認(df -hが定番)
  • du: 特定のディレクトリやファイルの使用量を確認
  • du -sh *で現在のディレクトリ内の使用量を確認
  • sort -hrと組み合わせて大きい順に表示
  • 定期的なチェックでディスク容量不足を予防

この2つのコマンドは、システム管理の基本中の基本です。「ディスクがいっぱい!」という緊急事態の時も、落ち着いてdf -hdu -shの順番で調査すれば、必ず原因が見つかります!

次はsortコマンドでデータの並び替えを学びましょう。duの出力を並び替える時にも使った、とても便利なコマンドです!

YouTube動画で復習

動画でさらに詳しく学びたい方は、CommandAcademyのYouTubeチャンネルをチェック!視覚的にコマンドの動作を確認できます。

ディスク容量の管理は、快適なLinux環境を保つために欠かせません。週に1回はdf -hでチェックする習慣をつけましょう!