tmpreaper は、一定期間アクセスされていないファイルを削除するツールです。
Linux デスクトップ ディストリビューションでは、ファイルが一定期間にわたって蓄積される「~/Downloads」などのディレクトリをクリーニングするのに適しています。
Linux サーバー ディストリビューションでは、不要になった古いログ ファイルやバックアップ ファイルを消去するのに適しています。
tmpreaper は、一定期間アクセスされていないファイルとディレクトリを再帰的に検索して削除します。
警告: tmpreaper をインストールして操作を開始する前に、tmpreaper を実行することの意味を理解しておいてください。指定された条件に一致するすべてのファイルがシステムから削除されるからです。 / (ルート ディレクトリ) で tmpreaper を実行しないでください。システムの実行を維持するために必要な重要なファイルが削除される可能性があります。 chroot 環境で tmpreaper を使用することが困難になるため、ルート ディレクトリでの実行を防止するためのセーフガードが tmpreaper プログラムに組み込まれていません。
1. tmpreaper をインストール
Ubuntu のような debian ベースのシステムでは、apt-get を使用します:
$ sudo apt-get install tmpreaper
CentOS や RedHat などの RPM ベースのシステムでは、yum を使用します:
$ sudo yum -y install tmpreaper
Tmpreaper コマンド構文:
$ tmpreaper [options] <time_spec> <dirs>
2. N 日古いファイルを削除
5 日前のファイルを削除するには、timespec として「5d」を使用します。
たとえば、次のコマンドは、過去 5 日間アクセスされていないファイルを ~/Downloads フォルダーから削除します。
$ tmpreaper 5d ~/Downloads
3. N 日間変更されていないファイルを削除
デフォルトでは、tmpreaper は「アクセス時間」に基づいてファイルを削除します。 「-m」オプションを使用して、「変更時刻」に基づいてファイルを削除するように tmpreaper に指示できます。
次のコマンドは、ダウンロード フォルダーで 5 日間変更されていないファイルを削除します。
$ tmpreaper -m 5d ~/Downloads
time_spec パラメータには次の文字も使用できます
- d – 日間
- h – 何時間も
- m – 分
- s – 秒
4. -s を使用してシンボリック リンクを削除
-s オプションを使用して、ファイルやディレクトリだけでなく、シンボリック リンクも削除します。
ファイルとディレクトリのクリーンアップとは別に、次のコマンドは、指定された時間指定に一致するシンボリック リンクもクリーンアップします。
$ tmpreaper -s 5h ~/Downloads
5. -a オプションを使用してすべてのファイル タイプを削除
-a オプションを使用して、通常のファイル、ディレクトリ、およびシンボリック リンクだけでなく、すべての種類のファイルを削除します。
$ tmpreaper -a 5m ~/Downloads
6.ドライランを実行 – -t オプションを使用して削除をテスト
-t オプションを使用して、どのファイルが削除されるかをテストします。
これは、重要なディレクトリに対してこれを実行していて、実際に削除される前にどのファイルを削除するかを正確に知りたい場合に非常に役立ちます。
このオプションはファイルを削除しません。
$ tmpreaper -t 5d ~/Downloads (PID 5415) Pretending to clean up directory `/home/lakshmanan/Downloads'. (PID 5416) Pretending to clean up directory `.tmp_versions'. (PID 5416) Back from recursing down `.tmp_versions'.
7. -f オプションを使用してファイルを強制的に削除
-f オプションを使用して、ファイルを強制的に削除します。通常、書き込みアクセス権のない現在のユーザー (EUID) が所有するファイルは削除されません。 -f を使用すると、それらのファイルも削除されます。
$ tmpreaper -f 5h ~/Downloads
8. –protect オプションを使用してパターンに一致するファイルを削除しない
–protect ‘
たとえば、次のコマンドは「.c」ファイルを除くすべてのファイルを削除します。
$ tmpreaper --protect '*.c' -t 5h ~/my_prg Entry matching `--protect' pattern skipped. `hello.c' Pretending to remove file `./.hello.o'.
9. Cron での tmpreaper の使用
デフォルトでは、tmpreaper をインストールすると、crontab ( /etc/cron.daily/tmpreaper ) にエントリが作成されます。 /etc/tmpreaper.conf からオプションを読み取り、それらのオプションに基づいて tmpreaper コマンドを実行します。
/etc/tmpreaper.conf は自明であり、理解しやすいものです。デフォルトでは、一部のファイル タイプを除き、/tmp にある 7 日前のファイルが削除されます。これを使用する場合は、/etc/tmpreaper.conf から「SHOWWARNING=true」行を削除してください。
行が削除されると、tmpreaper が毎日実行され、ユーザーの介入なしで指定されたディレクトリがクリーンアップされます。