findコマンドで直近に更新されたファイルを調べる方法

findコマンドを使って、システム内でどのファイルが直近に更新されたか確認する手順をまとめました。

ここではシステム全体を対象としているので、ユーザーはrootユーザーで、検索対象は”/”のパスとしています。
 

1) -maxdepthオプションを指定し、上位の階層から順に調査く


 
実行例)
 
# find / -xdev -maxdepth 1 -mtime -1 -type f
# find / -xdev -maxdepth 2 -mtime -1 -type f
# find / -xdev -maxdepth 3 -mtime -1 -type f
/var/run/dhclient-eth0.pid
/var/run/utmp
/var/log/wtmp
/var/log/secure
/var/log/lastlog
/var/log/cron
/var/log/messages
/var/lib/logrotate.status
 
オプションの説明)
 
・-xdev
 
異なるファイルシステムは対象外にします。これによって”/proc”を対象外にしています。
 
・–max-depth=1
 
“/”から何階層目のディレクトリまで調べるか指定します。
 
・-mtime -1
 
ファイルが更新されたタイムスタンプが1日以内のファイルを検索します。1日の場合は-mtime 1、1日以上の場合は、-mtime +1とします。
 
・-type f
 
更新されたファイルを調べているので、このオプションを指定して通常のファイルのみ検索対象としています。
 

2)特定のディレクトリを検索対象外として検索


 
–max-depthで指定する階層の値を大きくしていくと、ある特定のディレクトリ内のファイルが大量に表示される場合があります。
 
調査対象から外してよい場合は、下記のように-regexオプションを使って指定したディレクトリを検索対象から外す事ができます。
 
実行例)”/var/qmail”、”/var/lib/mysql”、”/var/www/mrtg”のディレクトリを検索対象から外す場合
 
# find / -xdev -maxdepth 7 -mtime -1 -type f ! -regex “/var/qmail/.*” ! -regex “/var/www/mon/mrtg/.*” ! -regex “/var/lib/mysql/.*
 
オプションの説明)
 
-regexオプションを使って、検索対象から外すディレクトリのパスを正規表現を使って指定します。そしてその-regexオプションでマッチしたディレクトリを対象外とするので、-regexオプションの前に否定を意味する”!”を指定します。
 
! -regex “/var/qmail/.*”

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です