wal-g를 활용한 백업 스크립트 공유.
postgres@lkmpg:~$ cat backup.sh
#!/bin/bash
# 백업 설정
BACKUP\_DIR="/backups"
WALG\_CONFIG="/etc/wal-g.yaml"
PG\_DATA="/var/lib/postgresql/15/main"
LOG\_FILE="/var/lib/postgresql/wal-glog/wal-g\_backup.log"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
# PostgreSQL 사용자
PG\_USER="postgres"
# 로그 함수
log() {
echo "\[$TIMESTAMP\] $1" >> "$LOG\_FILE"
echo "\[$TIMESTAMP\] $1"
}
# 백업 시작 로그
log "Starting PostgreSQL backup with WAL-G..."
# WAL-G 풀 백업 수행
sudo -u $PG\_USER /usr/local/bin/wal-g backup-push "$PG\_DATA" --config="$WALG\_CONFIG" >> "$LOG\_FILE" 2>&1
if \[ $? -eq 0 \]; then
log "Full backup completed successfully."
else
log "ERROR: Full backup failed!"
# 필요 시 알림 추가 (예: 이메일)
# echo "Backup failed at $TIMESTAMP" | mail -s "WAL-G Backup Failure" admin@example.com
exit 1
fi
# 오래된 백업 정리 (예: 7일 이상된 백업 삭제)
sudo -u $PG\_USER /usr/local/bin/wal-g delete before FIND\_FULL 7d --config="$WALG\_CONFIG" --confirm >> "$LOG\_FILE" 2>&1
if \[ $? -eq 0 \]; then
log "Old backups (older than 7 days) cleaned up successfully."
else
log "WARNING: Failed to clean up old backups."
fi
# 백업 목록 확인
log "Current backup list:"
sudo -u $PG\_USER /usr/local/bin/wal-g backup-list --config="$WALG\_CONFIG" >> "$LOG\_FILE" 2>&1
# 스크립트 종료
log "Backup process finished."
exit 0
'Postgresql > 백업 및 복구' 카테고리의 다른 글
WAL-G를 사용한 PostgreSQL 15 백업 및 복구 테스트 시나리오2 (0) | 2025.03.11 |
---|---|
postgresql 백업 툴 종류 (0) | 2025.03.10 |
WAL-G를 사용한 PostgreSQL 15 백업 및 복구 테스트 시나리오 (0) | 2025.03.10 |
wal-g 에 대해 (0) | 2025.03.09 |