VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

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/.*”
モバイルバージョンを終了