findで古いファイルを削除・移動・圧縮する方法 | ex1-lab

findで古いファイルを削除・移動・圧縮する方法

2023-05-08

findとxargsを使用して、古いファイルを削除・移動・圧縮する方法を紹介します。個人的にはログファイル等をメンテナンス時によく使うコマンドです。

findで、n日より古いファイルを削除する

特定の日数以上のファイルを「-mtime」オプション使って対象としています。下記の場合は60日以上前のファイルとしています。その検索条件にHITしたファイルを「xargs」に渡して「rm」で削除しています

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ find /etc/httpd/log -type f -mtime +60 -name "*.log" | xargs rm -f
$ find /etc/httpd/log -type f -mtime +60 -name "*.log" | xargs rm -f
$ find /etc/httpd/log -type f -mtime +60 -name "*.log" | xargs rm -f

findで、n日より古いファイルを移動する

削除のときと同じように、「-mtime」を利用して古いファイルを検索して「xargs」に渡しています。削除とは違い「mv」コマンドで任意のディレクトリに移動しています

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ find /etc/httpd/log -type f -mtime +90 -name "*.log" | xargs mv --target-directory=/var/tmp/backup
$ find /etc/httpd/log -type f -mtime +90 -name "*.log" | xargs mv --target-directory=/var/tmp/backup
$ find /etc/httpd/log -type f -mtime +90 -name "*.log" | xargs mv --target-directory=/var/tmp/backup

findで、n日より古いファイルを圧縮する

削除のときと同じように、「-mtime」を利用して古いファイルを検索して「xargs」に渡しています。削除・移動とは違い「gzip」コマンドで任意のディレクトリに圧縮しています。
また、念のために「! -name “*.gz" 」で圧縮は対象外としています

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ find /etc/httpd/log -type f -mtime +30 -name "*.log*" ! -name "*.gz" | xargs gzip
$ find /etc/httpd/log -type f -mtime +30 -name "*.log*" ! -name "*.gz" | xargs gzip
$ find /etc/httpd/log -type f -mtime +30 -name "*.log*" ! -name "*.gz" | xargs gzip

 

スポンサーリンク

0
0