- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:syslogのローテーション設定)
syslogのローテーション設定について詳しく教えてください
このQ&Aのポイント
- FreeBSD上でsyslogのローテーションを設定する方法を教えてください
- ローテーションは毎日午前0時に行われ、ログファイルのファイル名は syslog.log.2006-06-11.gz のように運用されます
- 現在はnewsyslogを使用してローテーションを行っており、管理者権限の制限はありません
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
がると申します。 似たような状況でlogをローテートしているbashのバッチファイルを記載してみます。 ちと対象ファイル、ファイル名の命名規則など異なるかと思うので、適宜アレンジしてください。 なにかの参考にでもなれば幸いです。 #!/bin/bash DATE=`/bin/date +%Y%m%d`_ DIR=/var/log for file in syslog access_log http_error_log do cp $DIR/$file $DIR/bak/$DATE$file cat /dev/null > $DIR/$file done
お礼
ありがとうございます。教えていただいた内容を基に、以下のスクリプトを書いてみました。これを毎日0:01に走らせることで目的の処理を実現できました。 YESTERDAY=`TZ=JST+15 /bin/date +%Y-%m-%d` DIR=/var/log LOGFILE=`find /var/log/syslog.log.0.gz -cmin -3` if [ $DIR/syslog.log.0.gz = $LOGFILE ] ; then cp $LOGFILE $DIR/ARCHIVE/syslog.log.$YESTERDAY.gz && \ rm $LOGFILE && \ find $DIR/ARCHIVE -name 'syslog.log.*.gz' -mtime '+94' -exec rm -r {} \;