Apache에서 rotatelogs를 이용하여 로그 파일을 매일 Rotation할 수 있다.
그러나 로그 파일이 날찌별 동일 디렉토리에 생성되기 때문에 월별로 디렉토리를 생성하여 로그 백업이 필요한 경우 사용할 수 있다.
먼저 shell을 작성한다.
■logback.s
#!/bin/sh CUR_DATE=`date +"%Y%m%d"` LOG_FILE=log_cron_$CUR_DATE.log LOG_HOME=/logs001/apache LOG_BACK_DIR=$LOG_HOME/`date +"%Y%m"` ACCESS_LOG_FILE=$LOG_HOME/access_$CUR_DATE.log ERROR_LOG_FILE=$LOG_HOME/error_$CUR_DATE.log HEALTH_LOG_FILE=$LOG_HOME/health_$CUR_DATE.log #Make log backup directory if [ ! -d $LOG_BACK_DIR ]; then echo "$LOG_BACK_DIR is created" >> $LOG_FILE mkdir $LOG_BACK_DIR fi #Move log file to backup directory for entry in $LOG_HOME/* do if [ ! -d $entry ]; then if [ $entry != $ACCESS_LOG_FILE ] && [ $entry != $ERROR_LOG_FILE ] && [ $entry != $HEALTH_LOG_FILE ]; then echo "$entry is moved to $LOG_BACK_DIR" >> $LOG_FILE #mv $entry $LOG_BACK_DIR fi fi done |
Shell 작성이 완료되었으면 Crontab에 등록하여 주기적으로 shell을 실행하도록 한다.
crontab -e 명령을 이용하여 cron에 Job을 등록한다.
10 0 * * * /engn001/script/logback.sh |
매일 0시 10분에 logback.sh가 실행된다.
Crontab 등록 완료되었으면 crontab -l을 이용하여 등록된 내용을 확인한다.