반응형
웹 액세스 로그 백업 스크립트
스크립트 작성
vim web_log_backup.sh
#!/bin/bash
#
# Script Name : web_log_backup.sh
# Description : Daily/Monthly backup script for Apache access & error logs
#
set -euo pipefail
# ===== Configuration =====
LOG_DIR="/svc/idp/web/apache/logs"
YESTERDAY=$(date --date '1 day ago' +%Y%m%d)
TODAY=$(date +%d)
YYYYMM=$(date --date '28 days ago' +%Y%m)
RETENTION_DAYS=180
# ===== Move to log directory =====
cd "${LOG_DIR}" || {
echo "❌ Failed to access log directory: ${LOG_DIR}"
exit 1
}
# ===== Daily backup =====
echo "▶ Daily backup for ${YESTERDAY}"
tar zcvf "access-${YESTERDAY}.log.tgz" access-"${YESTERDAY}"*.log
tar zcvf "error-${YESTERDAY}.log.tgz" error-"${YESTERDAY}"*.log
rm -f *-"${YESTERDAY}"*.log
# ===== Monthly backup (run on the 1st day) =====
if [ "${TODAY}" = "01" ]; then
echo "▶ Monthly backup for ${YYYYMM}"
tar zcvf "access-${YYYYMM}.log.tgz" access-"${YYYYMM}"??.log.tgz
tar zcvf "error-${YYYYMM}.log.tgz" error-"${YYYYMM}"??.log.tgz
rm -f *-"${YYYYMM}"??.log.tgz
# Retention policy
find . -name "*.tgz" -mtime +${RETENTION_DAYS} -delete
fi
echo "✅ Log backup completed successfully"
실행 권한 부여
chmod +x web_log_backup.sh
실행
./web_log_backup.sh
cron 등록 시
0 2 * * * /path/web_log_backup.sh >> /var/log/web_log_backup.log 2>&1
728x90
반응형
'스크립트' 카테고리의 다른 글
| 이더넷 채널 본딩하기(Bonding) (0) | 2014.02.28 |
|---|---|
| CentOS 7 DSR 설정 스크립트 (0) | 2014.01.02 |
| 리눅스에서 ping 테스트 시 시작 표시 및 Bell 알림 출력하기 (0) | 2013.09.10 |
| 파이션 파일 및 디렉토리 작업 (0) | 2013.08.27 |
| 아파치 서버의 로그 저장 스크립트 (0) | 2013.08.14 |