2017/02/03更新

[Linux] 最終更新日や最終アクセス日を指定して、ファイルを検索/削除する

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
サーバーでシステムを運用していたらだんだんとファイルが増えてハードディスクがいっぱいに・・・。そんな時に古いファイルを見つけて削除する方法をブログに書きたいと思います。
画像

目次




findコマンドで日付ベースでファイルを見つける

findコマンドのmtimeatimeのオプションを指定して、日付でファイルを探すことができます。
オプション 概要
-mtime ファイルの最終更新日を指定して検索する
-atime ファイルの最終アクセス日を指定して検索する
そして、オプションの後ろには、「+n:n日以前」「n:ちょうどn日前」「-n:n日前まで」を指定することができます。
# 最終更新日が「10日前〜過去」であるファイル
$ find /opt/myapp/data/ -mtime +10

# 最終更新日が「10日前」であるファイル
$ find /opt/myapp/data/ -mtime 10

# 最終更新日が「現在〜10日前」であるファイル
$ find /opt/myapp/data/ -mtime -10
最終更新日や最終アクセス日で検索できるのは便利ですね〜。他にもfindコマンドにはいっぱいオプションがありますので、気になった方はman findなどで確認してみてください。



最終更新日が60日前以前のファイルを削除

上記の検索を応用すると、○日前より古いファイルを一括で削除する、といったシェルも簡単に書くことができます。
# 該当ファイルが問題ないことを確認して...
$ find /opt/myapp/data/ -mtime +60

# その後に、rmで一発削除
$ find /opt/myapp/data/ -mtime +60 | xargs rm
と、こんな感じです。同じことをfindの-execでもできますが、1件ずつ削除すると遅いので、xargsの方がいいですね。



最後に

Linuxコマンドは日々勉強中です。色々とあって学びがいがありますね。今後もたくさんブログに書きたいと思います。

最後になりますが本ブログでは、Linux・フロントエンド・インフラ・Go言語・Node.js・Python・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。