///
Search
🧱

DB 백업 설정

담당 팀
데이터
담당자
상태
Done
작업일
2022/07/27
종류
구현
스케줄링 crontab
매일 새벽 1시 수행
postgres@bd706b984fcb:~/work/devpg_backup/shell$ crontab -l ####### devpg dump 0 1 * * * sh /var/lib/postgresql/work/devpg_backup/shell/devpg_backup.sh
SQL
복사
스크립트
5일전 백업 본 삭제 후 pg_dump 유틸을 통해 백업 수행
postgres@bd706b984fcb:~/work$ tree devpg_backup/ devpg_backup/ |-- dump # 백업 파일 경로 | `-- 20220727_backup.dump |-- log # 로그 파일 경로 | `-- 20220727_backup.log `-- shell # 백업 스크립트 `-- devpg_backup.sh
Bash
복사
postgres@bd706b984fcb:~/work$ cat devpg_backup/shell/devpg_backup.sh #!/bin/bash BK_DUMP_SHELL="/var/lib/postgresql/work/devpg_backup/shell" BK_DUMP_LOG="/var/lib/postgresql/work/devpg_backup/log" BK_DUMP_PATH="/var/lib/postgresql/work/devpg_backup/dump" RM_DUMP_DT=`date +%Y%m%d -d "-5 days"` RM_DUMP_FILE=$BK_DUMP_PATH/$RM_DUMP_DT"_backup.dump" BK_DUMP_DT=`date +%Y%m%d` BK_DUMP_DUMP_LOG="$BK_DUMP_LOG"/"$BK_DUMP_DT"_backup.log FN_REMOVE_DUMP(){ echo "# remove backup dump" if [ -e "$RM_DUMP_FILE" ] then ls -lrt $BK_DUMP_PATH echo "- remove start" echo "- remove file: "$RM_DUMP_FILE rm -rf $RM_DUMP_FILE echo "- remove end" echo else ls -lrt $BK_DUMP_PATH echo "- remove none" echo fi echo echo } FN_PG_DUMP(){ echo "# backup start" echo "# detail" pg_dump -f "$BK_DUMP_PATH"/"$BK_DUMP_DT"_backup.dump -h localhost -p 5432 -v -U postgres devpg 2>> $BK_DUMP_DUMP_LOG ls -lrt $BK_DUMP_PATH echo "# backup end" } echo "########## postgresql BACKUP DUMP" > $BK_DUMP_DUMP_LOG FN_REMOVE_DUMP >> $BK_DUMP_DUMP_LOG FN_PG_DUMP >> $BK_DUMP_DUMP_LOG
Bash
복사