Project

General

Profile

Actions

Backup Restore » History » Revision 1

Revision 1/3 | Next »
상혁 손, 2025-10-24 17:48


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