2016-09-08 7 views
0

1日以上経過したログファイルを削除したいところでcronジョブを設定していました。これを行うコマンドは次のとおりです。私はAWS Linux EC2インスタンスでこれをやっています。Linuxでcronジョブを使って古いファイルを削除する

find /var/log/tomcat8/ -mindepth 1 -mtime +1 -delete 

は、しかし、私が達成したいことは、私が削除したばかりの.logファイルを除外したいとちょうど.gz拡張子を持つファイルを削除したいです。 findコマンドでその除外をどのように達成するかは、どのボディからでも知ることができます。

答えて

4

* .gzファイルを探して削除してください。

find /var/log/tomcat8/ -name '*.gz' -mindepth 1 -mtime +1 -delete 

削除する前に、ファイルを削除して正しいものを削除してください。

find /var/log/tomcat8/ -name '*.gz' -mindepth 1 -mtime +1 -print 
+0

どのように私はここに、複数の拡張を実現するのだろうか?たとえば、.gzと.outも削除したいのですか? – error2007s

+0

また、この警告が表示されます:find:警告:非オプション引数-nameの後に-mindepthオプションを指定しましたが、オプションは定位置ではありません(-mindepthはその前に指定されたテストに影響を与えます)。他の引数の前にオプションを指定してください。 "この警告を取り除くにはどんな考えですか? – error2007s

+1

複数の拡張機能を使用する場合は、 'find'の' -regex'オプションを参照してください。私は通常、出力を 'egrep'にパイプします – helloV

0

印刷するには、以下のように選択されたすべてのファイル:ファイルの上

find /var/log/tomcat8/ -name '*.gz' -mindepth 1 -mtime +1 

は、以下のように削除することができます。

find /var/log/tomcat8/ -name '*.gz' -mindepth 1 -mtime +1 -exec rm{} \ 
関連する問題