Closed2
Linux一定時刻経過したログファイルの削除方法について
tmpwatchはRedHat系のディストリビューションで提供されている。
Ubuntuについてはtmpreaperというパッケージで提供されている。
以下、tmpwatchについての使い方を以下の文献より抜粋。
tmpwatchの使い方
-tを付けるとドライランできる。
/usr/sbin/tmpwatch -tumcv 72 /home/*/logs/
tmpreaperの使い方
tmpreaperをインストールしてみたが、以下のような設定ファイルがあったりと、個人的にtmpwatchよりも利用方法が煩雑に思えた。
/etc/tmpreaper.con
# 1. 直前の文章を読み、理解した上で SHOWWARNING をコメントアウトする
# SHOWWARNING=true
...
# 2. "/var/tmp/." を追加 (不要であれば "/tmp/." の記述は削除)
TMPREAPER_DIRS='/tmp/. /var/tmp/.'
# 3. 5日以上アクセスがないと削除(デフォルトは7日)
TMPREAPER_TIME='5d'
結果として、今回は用途が限られていたため、以下のようなShellScriptで対応した。
findした結果をwhile read lineする箇所の詳細については、
以下の記事を参考にしながら実装した。
bash
#!/bin/bash
echo "Start deleteing outedated file"
#XXXディレクトリ以下のデータで一定時刻以上(100日)すぎたものを削除する
count=0
find XXX -type f -mtime +100 | while read line
do
echo "file name $line"
rm -f $line
let ++count
done
echo "File deleted the number is ${count}"
このスクラップは2022/02/05にクローズされました