활용하기

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

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

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

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

Recent Posts

[iOS] Xcode ‘You do not have required contracts to perform an operation’ 해결

Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…

1주 ago

[안드로이드] INSTALL_FAILED_INSUFFICIENT_STORAGE 해결

INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…

6개월 ago

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

8개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

8개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

8개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

8개월 ago