다가오는 다음을 향해

[VPS ] PostgresSQL DB 자동 Backup - cron 본문

Server/VPS(hostinger)

[VPS ] PostgresSQL DB 자동 Backup - cron

hyeseo 2024. 1. 3. 12:43

 

PostgresSQL DB Backup

 

 

 

스크립트 디렉토리 생성 및 스크립트 작성


스크립트를 저장할 디렉토리 생성 명령어

mkdir -p myfolder/subfolder/subsubfolder

 

 

스크립트 파일 생성

vim myfolder/subfolder/subsubfolder/database_backup.sh

 

i를 눌러 insert mode로 변경

 

 

스크립트 내용 입력

#!/bin/bash

# PostgreSQL 컨테이너 이름
CONTAINER_NAME="컨테이너 이름"

# PostgreSQL 연결 정보 설정
DB_USER="사용자이름"
DB_NAME="스키마이름"
DB_PASSWORD="비밀번호"
DATE=$(date +"%Y%m%d%H")

# 호스트 시스템에서의 백업 파일 경로 및 이름 설정
BACKUP_DIR="/data/db/backup"
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_backup_${DATE}.sql"


# pg_dump 명령어에서 환경 변수를 사용하여 백업
docker exec -t $CONTAINER_NAME pg_dump -U $DB_USER -d $DB_NAME -h localhost -p 5432 > $BACKUP_FILE

echo "Backup completed at $DATE"

 

:wq! 를 입력하여 스크립트 저장

 

스크립트 실행


 

모든 사용자에게 스크립트 실행 권한 부여

chmod +x database_backup.sh

 

 

 

스크립트 실행 명령어

myfolder/subfolder/subsubfolder/database_backup.sh

 

[실행 예시 화면]

 

[DB 백업 확인]

cd /data/db/backup
ls

 

 

 

DB 백업 스크립트 자동실행 - cron 작업 스케줄러


 

crontab 파일 열기

crontab -e

 

crontab 작업 추가

# 매일 자정 스크립트 실행
0 0 * * * /path/to/database_backup.sh

 

  • 각 별표(*)는 다음을 나타냅니다
    - 분 (0 - 59)
    - 시 (0 - 23)
    - 일 (1 - 31)
    - 월 (1 - 12)
    - 요일 (0 - 7, 일요일은 0 또는 7)

vim이나 nano와 같은 에디터를 사용하는 경우, 저장 후 종료하려면 :wq (vim) 또는 Ctrl+X 후 Y (nano)를 사용합니다.