본문 바로가기
SW 프로그래밍/Mariadb

MariaDB 자동백업 및 스크립트

by N2info 2024. 1. 3.

1. 백업디렉토리 생성 및 권한부여

# root에서

nnn@nnn-S5520UR:/$ mkdir /home/nnn/db_backup
nnn@nnn-S5520UR:/$ chmod 755 /home/nnn/db_backup

생성된 백업 폴더(db_backup)의 권한을 수정. 소유자는 읽기/쓰기/실행이 가능하고, 그 외에는 읽기/실행이 가능함.

 

2. 백업을 수행할 스크립트 파일 생성

# root에서

nnn@nnn-S5520UR:~/db_backup$ nano /home/nnn/db_backup/dbbackup.sh

 

3. 백업스크립트 작성

#!/bin/bash
# backup directory
BACKUP_DIR=$(echo /home/nnn/db_backup)
#echo BACKUP_DIR

 # get backup file time and now time
 DATE=$(date +"%Y-%m-%d")
 #echo $DATE

# 7일전 날자정보 가지고 오기 
PREDATE=$(date --date "7 days ago" +"%Y-%m-%d")
#echo $PREDATE

# backup run
mysqldump -uroot -p[패스워드] dddd > $BACKUP_DIR/${DATE}_dddd.sql
15 mysqldump -uroot -[패스워드] kkkk > $BACKUP_DIR/${DATE}_kkkk.sql

# 작성된지 7일이 지난것을 삭제하는 부분
#rm -Rf /home/nnn/db_backup/${PREDATE}_dddd.sql
#rm -Rf /home/nnn/db_backup/${PREDATE}_kkkk.sql

 

4. 자동실행(CRONTAB)  & 실행등록확인

# crontab -e #작업 스케줄러 설정
#설정 후 crontal -l 명령어를 통해 예약된 작업 리스트 확인가능

# db_backup
# 매일 0시 0분 backup.sh 파일 실행
0 0 * * * /root/database_backup/backup.sh

# 30분 마다 실행
*/30 * * * * /root/database_backup/backup.sh

# 매주 월요일 새벽 2시에 실행
0 02 * * 1 /root/database_backup/backup.sh

# 매월 1일 새벽 1시에 실행
0 01 1 * * /root/database_backup/backup.sh

┬ ┬ ┬ ┬ ┬
│ │ │ │ └─ 요일 (0 - 6) (0:일요일, 1:월요일, …, 6:토요일)
│ │ │ └─ 월 (1 - 12 or jan, feb, mar, apr...)
│ │ └─일 (1 - 31)
│ └─ 시 (0 - 23)
└─ 분 (0 - 59)

 

5. crontab 재시작

nnn@nnn-S5520UR:~/db_backup$ service cron restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'cron.service'.
Authenticating as: nnn,,, (nnn)
Password: #비밀번호 입력
==== AUTHENTICATION COMPLETE ===
nnn@nnn-S5520UR:~/db_backup$

 

 

 

참조 : https://wildeveloperetrain.tistory.com/208

 

mysql 자동 백업 설정 방법 (ubuntu server)

데이터베이스를 착각해서 데이터를 한번 날리고 나서야(정말 다행히도 개발서버) 백업 설정을 잘해야겠구나를 느끼게 되었습니다. 이후 운영환경의 서버에서는 데이터베이스 생성 후 가장 먼

wildeveloperetrain.tistory.com