この記事では、Linux環境でユーザーごとのディスク使用量を確認する方法について詳しく解説します。`du`コマンドや`find`コマンドを用いた基本的な手法から、スクリプトを使って自動化する高度な手法まで、具体的なコード例とその解説、応用例を含めています。
目次
基本的な手法:duコマンドとfindコマンド
Linuxでディスク使用量を確認する最も一般的な方法は`du`コマンドです。しかし、特定のユーザーが使用しているディスク容量を知りたい場合、`find`コマンドを併用すると便利です。
# ユーザー名(例:john)のディスク使用量を確認
find / -user john -type f -exec du -ch {} + | grep total$
このコマンドは`/`(ルートディレクトリ)から検索を始め、ユーザー名`john`が所有するファイルのディスク使用量を計算します。
高度な手法:スクリプトを使用する
以下は、全ユーザーのディスク使用量を確認するbashスクリプトの一例です。
#!/bin/bash
# 全ユーザーのディスク使用量を確認
for user in $(getent passwd | cut -d: -f1); do
find / -user $user -type f -exec du -ch {} + | grep total$ | awk -v user=$user '{print user": "$1}'
done
このスクリプトは、システム上の全ユーザーについて、各ユーザーが所有するファイルの総ディスク使用量を表示します。
応用例
応用例1:特定のディレクトリ下のユーザーごとのディスク使用量を確認
# /homeディレクトリ下での確認
find /home -user john -type f -exec du -ch {} + | grep total$
応用例2:複数のユーザーのディスク使用量を一度に確認
# johnとmikeのディスク使用量を確認
find / \( -user john -o -user mike \) -type f -exec du -ch {} + | grep total$
応用例3:特定の拡張子のファイルを所有するユーザーのディスク使用量
# .logファイルを所有するユーザーのディスク使用量
find / -name "*.log" -type f -exec du -ch {} + | grep total$
応用例4:特定の日付以降に作成されたファイルのディスク使用量
# 30日以内に作成されたファイルのディスク使用量
find / -mtime -30 -type f -exec du -ch {} + | grep total$
応用例5:findコマンドの結果をCSV形式で出力
# CSV形式で出力
find / -user john -type f -exec du -ch {} + | awk '{print $1","$2}' > usage.csv
まとめ
Linuxでユーザーごとのディスク使用量を確認する方法は多くありますが、基本的な`du`コマンドと`find`コマンドの組み合わせが一番簡単かつ効率的です。また、スクリプトを用いることで、より高度な操作や自動化も可能です。この記事で紹介した方法や応用例を参考に、ディスク使用量の管理を効率化してください。
コメント