Linuxでユーザーごとのディスク使用量を確認する方法

この記事では、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`コマンドの組み合わせが一番簡単かつ効率的です。また、スクリプトを用いることで、より高度な操作や自動化も可能です。この記事で紹介した方法や応用例を参考に、ディスク使用量の管理を効率化してください。

コメント

コメントする

目次