JooTC

MySQL 데이터베이스 자동 백업 스크립트

MySQL 데이터베이스 자동 백업 스크립트

일정 시간 마다 MySQL 데이터베이스자동으로 백업해주는 Bash Shell 스크립트입니다.

주의: 이 스크립트는 데이터베이스 용량이 작은 경우에 권장되며 가급적이면 용량이 큰 데이터베이스를 이 스크립트를 사용하여 백업하지 않는 것을 권장합니다.

스크립트 파일 (mysqlbackup.sh)

#!/bin/bash
# Time format
currentDate=$(date "+%Y_%m_%d_%H_%M_%S")

# Database user authentication
dbUser="[Database User]"
dbPass="[Database Password]"

# Save file name or path
siteName="[Backup File Name]"
savePath="[Backup FIle Path]"

# ======================================================
# Create SQL Backup File
# ======================================================
mysqldump -u$dbUser -p$dbPass -A > $savePath$siteName'_backup_'$currentDate.sql
chmod 400 $savePath$siteName'_backup_'$currentDate.sql
echo "Success : Created backup file. ($currentDate)"

사용 방법

상단의 파일을 복사하여 mysqlbackup.sh으로 저장합니다. (이름은 자유롭게 지정해주셔도 됩니다.)

여기서 해당되는 변수에 지정된 값을 기입해야 합니다.

  • dbUser (데이터베이스 사용자 명)
  • dbPass (사용자 패스워드)
  • siteName (백업파일명),
  • savePath (저장 경로 : /home/user/ 처럼 끝에 /를 붙입니다.)

해당 파일을 실행할 수 있도록 권한을 700로 설정합니다. 가능하면 mysqldump 명령어를 실행할 수 있는 사용자로 권한을 변경해주는 것을 권장합니다.

root 권한으로 실행하려 한다면 아래와 같이 진행해주시면 됩니다.

# chmod 700 mysqlbackup.sh
# chown root.root mysqlbackup.sh

다음으로 예약 작업을 지정합니다. crond 로 예약 작업을 추가해보겠습니다. 아래 명령어로 cron 작업 편집기를 열어주세요.

# crontab -e

cron 작업 편집기가 열리면 다음 내용을 추가합니다.

0 1 * * * /[실행파일 경로]/mysqlbackup.sh

위 예시는 매일 오전 1시에 자동으로 해당 스크립트를 실행해주는 내용을 담고 있습니다.

이제 crond 서비스를 재시작해야 합니다.

# service crond restart

이제 해당 스크립트가 일정 시간 마다 실행 될 것입니다.

만약 해당 백업 파일로 데이터베이스 백업이 필요한 경우, 아래 포스트를 참고하여 데이터베이스 백업을 진행해보세요.

구독
알림
guest

0 Comments
Inline Feedbacks
모든 댓글 보기
0
이 포스트에 대한 의견을 남겨주세요!x