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