大容量ファイルの検索 [重複]

大容量ファイルの検索 [重複]

私のCent OSシステムには、ユーザーがすべてのファイルを保存できるディレクトリがあります。どのユーザーが大容量ファイルをフォルダに入れているかを知りたいです。

このような状況が日々増えていますが、大容量ファイルについて知りたいです。手動で確認したくないので、すべてのコマンド。

答え1

次のようなものを使いたいと思います。

while read directory
do
    find "$directory" -size +1M -exec stat --format="%U (id: %u), file: %n" {} \;
done << EOT
/path/to/folder 1
/path/to/my folder 2
EOT

+1M1Mより大きいファイルを見つけます。

統計形式には、ユーザー名、ユーザーID、および一致するファイル名が表示されます。

コメントに続き、編集時間に基づいてフィルタリングしたいとします。たとえば、find過去24時間以内に変更されたファイルは一致しません。これで次のようになります。

find "$directory" -size +1M -mtime +1 -exec stat --format="%U (id: %u), file: %n" {} \;

答え2

for i in `cat /etc/passwd | awk -F ":" '$3 >= 500 {print $1}'`; do find path -type f  -size +1M -user $i -exec ls -ltr {} \;; done | awk '{print $3,$NF}'

上記には、ファイルサイズが1Mを超えるファイルとユーザー名がリストされています。正常に動作することを確認しました。アップデートを教えてください

また、システムユーザーのファイルも無視します。したがって、条件catを指定した場合にのみ/etc/passwd | awk -F ":" '$3 >= 500 {print $1}

関連情報