Linuxコマンド辞典 tmpwatchコマンド(システム管理)

ファイルへのアクセス時間によってファイルを削除する「tmpwatch」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

概要・使用方法

書式

$ tmpwatch [オプション] 時間 ディレクトリ名

一時ファイルを保存する場所として利用される「/tmp」上で、ある程度の時間でアクセスされていないファイルを削除するツールとして利用されていました。「/tmp」以外のディレクトリを対象にすることもできます。

CentOSやRockyLinuxにはインストールされていないので、「yum install tmpwatch」コマンドでインストールする必要がある。インストールは管理者権限で行う必要がある。

コマンドを実行する際は、管理者権限(root)で行う。

オプション

-u
–atime
アクセスされていないファイルを対象とする
-m
–mtime
修正されていないファイルを対象とする
-c
–ctime
inodeが更新されていないファイルを対象とする
-a
–all
すべてのファイルを対象とする
-s
–fuser
fuserを利用する
-t
–test
実際に削除しない
-d
–nodirs
ディレクトリが空でない場合は削除しない
-x パターン
–exclude パターン
指定したパターンを削除対象にしない

一定期間アクセスがないファイルを削除する

10日間アクセスがないファイルを削除する。

$ tmpwatch --atime 240 /var/tmp
$ sudo tmpwatch --atime 240 /var/tmp

実行結果

[sunarin@localhost ~]$ sudo tmpwatch --atime 240 /var/tmp
[sunarin@localhost ~]$ 

一定期間修正がないファイルを削除する

2週間アクセスがないファイルを削除する

$ tmpwatch --mtime --all 336 /var/tmp

実行結果

[sunarin@localhost ~]$ sudo tmpwatch --mtime --all 336 /var/tmp
[sunarin@localhost ~]$ 

削除できるファイルを確認する

4時間以上前のファイルの削除対象、10日以上前のファイルの削除対象、20日以上前のファイルの削除対象を確認する。

$ tmpwatch -t 時間 ディレクトリ

実行結果

[root@localhost tmp]# tmpwatch -t 4 .
removing file /var/tmp/5-hour-ago.txt
removing file /var/tmp/10-days-ago.txt
removing file /var/tmp/20-days-ago.txt
[root@localhost tmp]# tmpwatch -t 10d .
removing file /var/tmp/10-days-ago.txt
removing file /var/tmp/20-days-ago.txt
[root@localhost tmp]# tmpwatch -t 20d .
removing file /var/tmp/20-days-ago.txt
[root@localhost tmp]# 

削除対象から特定のファイルを除外する

「20-days*」パターンに該当するファイルを削除対象から外す

$ tmpwatch -a -x パターン ディレクトリ

実行結果

[root@localhost tmp]# tmpwatch -a -x 20-days* -t 10d .
removing file /var/tmp/10-days-ago.txt
[root@localhost tmp]#