ログローテートスクリプト作成1

■作業概要
ログのローテーションを行う際にlogrotate.dを使わずに簡単に出来ないかということで作成した。

■実現方法
linuxに搭載されているcronとシェルスクリプトを組み合わせて作成。

■仕様説明
/usr/cronscript/rotate.txtにローテーションしたいファイルパスを記載する
1行につき1ファイル
現行では最終更新日から30日超えたファイルは削除されるようになっている
crontab -eで定期的に実行されるよう登録
例:毎晩0時に実行する場合

0 0 * * * /usr/cronscript/logrotate.sh

■スクリプト

#!/bin/sh
FILE="/usr/cronscript/rotate.txt"
LASTDAY="date -d '1 days ago' '+%Y%m%d'"
if [ -e ${FILE} ] ; then
while read line
do
if [ -e ${line} ]; then
cp ${line} ${line}_${LASTDAY}
if [ $? -eq 0 ]; then
cp /dev/null ${line}
fi
find dirname ${line} -name "basename ${line}_*" -type f -ctime +30 | xargs rm -rf
fi
done < ${FILE}
fi
exit 0;

Avatar photo

SNOWSKI

大阪にあるどこかのIT会社で働いております / もしかするとあなたのそばにいるかもね...