Backup Restore » History » Revision 2
« Previous |
Revision 2/3
(diff)
| Next »
상혁 손, 2025-10-24 17:51
Backup // Restore¶
podman에서 postgre database가 구동된다는 가정
podman container = bigdata_postgresql라면 아래와 같이 backup함
ssd@SSD-SERVER:/work/podman/bigdata-server_v2/backup$ cat backup_postgres.sh
#!/bin/bash
# --- 설정 ---
CONTAINER_NAME="bigdata_postgresql"
DB_USER="spacs"
DB_NAME="polyp"
BACKUP_DIR="." # 백업 파일을 저장할 디렉토리 (현재 디렉토리)
# ------------
# 1. 오늘 날짜 (YYMMDD 형식)
TODAY=$(date "+%y%m%d")
BASE_FILENAME="backup_${TODAY}"
# 2. 버전 번호 자동 증가
COUNT=1
FINAL_FILENAME="${BACKUP_DIR}/${BASE_FILENAME}_v${COUNT}.dump"
# 파일이 존재하면 v(숫자)를 1씩 증가시킴
while [ -f "$FINAL_FILENAME" ]; do
COUNT=$((COUNT + 1))
FINAL_FILENAME="${BACKUP_DIR}/${BASE_FILENAME}_v${COUNT}.dump"
done
# 3. 백업 실행
echo "Starting PostgreSQL backup for database '$DB_NAME'..."
echo "Container: $CONTAINER_NAME"
echo "Saving to: $FINAL_FILENAME"
# pg_dump 실행 (비밀번호를 묻게 됩니다)
podman exec "$CONTAINER_NAME" pg_dump -U "$DB_USER" -d "$DB_NAME" -Fc > "$FINAL_FILENAME"
# 4. 성공 여부 확인 (간단히 파일 크기 체크)
if [ -s "$FINAL_FILENAME" ]; then
echo "✅ Backup successful: $FINAL_FILENAME"
else
echo "❌ Backup FAILED. Check permissions, password, or Podman status."
# 실패 시 생성된 0바이트 파일 삭제
rm "$FINAL_FILENAME" 2>/dev/null
fi
Restore¶
ssd@SSD-SERVER:/work/podman/bigdata-server_v2/backup$ cat restore_postgres.sh
#!/bin/bash
echo $1
exit
podman exec -i bigdata_postgresql pg_restore -U spacs -d polyp -c < $1
ssd@SSD-SERVER:/work/podman/bigdata-server_v2/backup$
Updated by 상혁 손 about 2 months ago · 3 revisions