사악미소
현대마법의 공방
사악미소
전체 방문자
오늘
어제
  • 분류 전체보기 N
    • Document
    • JavaScript
    • jQuery
    • Spring Web
      • Spring Framework
      • Spring Boot
    • Android
      • Java Code
      • Setting
    • iOS N
      • Swift Code
      • Setting N
    • PHP
      • Code
      • Setting
    • AWS
    • LINUX
      • Rocky Linux
      • CentOS
    • Node.js
    • Developer Tool
    • GIT
    • MAC
    • Scraping Document
    • MariaDB
    • WYSIWYG
    • Scouter
    • Docker
    • Planning
    • 용어정리
반응형

인기 글

최근 댓글

Programmer 사악미소.
사악미소

사악미소의 현대마법의 공방

[Linux] CentOS7 - MySQL / MariaDB 데이터 베이스 자동 백업 프로세스
LINUX/CentOS

[Linux] CentOS7 - MySQL / MariaDB 데이터 베이스 자동 백업 프로세스

2023. 1. 27. 16:17
728x90

 

1. MySQL / MariaDB 덤프 파일 Backup 디렉토리 생성

 

 

DataBase 백업 쉘 스크립트를 실행할 유틸티티( utility ) 디렉토리를 생성한다.

$ sudo mkdir /home/utility
$ ls /home -al
drwxr-xr-x.  5 root     root      49  7월 26 18:21 .
dr-xr-xr-x. 17 root     root     224  7월 26 16:23 ..
drwxr-xr-x.  3 root     root      60  7월 26 17:55 utility

 

 

utility 디렉토리아래 database_backup 디렉토리를 추가한다.

$ sudo mkdir /home/utility/database_backup
$ ls /home/utility -al
drwxr-xr-x. 3 root root   60  7월 26 17:55 .
drwxr-xr-x. 5 root root   49  7월 26 18:21 ..
drwxr-xr-x. 2 root root 4096  7월 26 17:55 mariadb_backup

 


 

 

2. 백업 Shell Script 작성 및 실행

 

 

먼저 MySQL / MariaDB 데이터 베이스를 백업하는 쉘 스크립트를 작성한다.

$ sudo vim /home/utility/database_backup_script.sh

『 database_backup_script.sh 』 라는 이름의 쉘 스크립트를 생성한다.

 

#!/bin/bash

# 날짜 포맷
NowTime=$(date +%Y%m%d%H%M)

# home 디렉토리 경로
HomeDirPath="/home"

# DataBase 백업 디렉토리 경로
BackDirPath="/home/utility/database_backup"

# mysqldump 덤프 파일(*.sql) 생성
# mysqldump -u사용자_계정 -p사용자_비밀번호 데이터베이스_이름 > 백업_디렉토리_경로/"데이터베이스_이름_"날짜_포맷.sql
mysqldump -usaakmiso -p1q2w3e example_database > ${BackDirPath}/"example_database_"${NowTime}.sql
mysqldump -uwicked -p1q2w3e magicworkshop_database > ${BackDirPath}/"magicworkshop_database_"${NowTime}.sql

# DB 백업 파일 -15일 경과 후 삭제 
find ${BackDirPath} -type f -name "*.sql" -mtime +15 -exec rm -f {} \;

 

 

위 『 database_backup_script.sh 』 쉘 스크립트는

 

지정한 2개의 데이터 베이스에 대하여 mysqldump 명령을 사용하여

 

*.sql 확장자를 사용하는 덤프 파일을 만들고 /home/utiltiy/database_backup 디렉토리에 저장한다.

 

mysqldump 명령

 

이후 15일이 경과되면 /home/utiltiy/database_backup 경로에 존재하는 15일 이전에 생성된 *.sql 파일을 삭제한다.

 

 

 

 

이제 작성한 『 database_backup_script.sh 』 파일을 실행한다.

$ sudo bash /home/utility/database_backup_script.sh

 

쉘 스크립트를 실행 하였다면 데이터베이스의 덤프(*.sql)파일이 잘 생성 되었는지 확인해보자.

$ ls /home/utility/database_backup/ -al
drwxr-xr-x. 2 root root     238  7월 26 18:57 .
drwxr-xr-x. 4 root root      84  7월 26 18:57 ..
-rw-r--r--. 1 root root    4501  7월 26 18:57 첫번째_데이터베이스_YYYYMMDDHHMM.sql
-rw-r--r--. 1 root root    3439  7월 26 18:57 두번째_데이터베이스_YYYYMMDDHHMM.sql

 

위와 같이 데이터베이스_YYYYMMDDHHMM.sql 파일이 생성된 것을 확인 할 수 있다.

 

 

 


 

3. Cron을 사용하여 반복 수행 설정

 

먼저 크론 탭 입력창을 오픈한다.

$ sudo crontab -e

 

매일 자정에 데이터베이스 백업 작업을 반복 수행한다.

# 매일 자정에 DataBase 백업 Shell Script 실행
0 0 * * * /bin/bash /home/utility/database_backup_script.sh

 

 

이후 자정이 지나고 database 백업이 잘 진행되었는지 확인해보자

$ ls /home/utility/database_backup/ -al
합계 28
drwxr-xr-x. 2 root root  223  7월 31 22:32 .
drwxr-xr-x. 4 root root   84  7월 26 18:57 ..
-rw-r--r--. 1 root root 4501  7월 29 00:00 example_database_202307290000.sql
-rw-r--r--. 1 root root 3439  7월 29 00:00 magicworkshop_database_202307290000.sql

 

위와 같이 00:00분에 작업이 덤프파일이 생성된 것을 확인 할 수 있을 것이다.

 

 

 

 

728x90

'LINUX > CentOS' 카테고리의 다른 글

[CentOS7] 사용자 계정 생성 및 Directory 만들기  (0) 2023.07.31
[Linux] MariaDB 설치 및 세팅  (6) 2023.02.23
[Linux] CentOS7 - HTTPS 접속을 위한 Apache 웹 서버의 Mod_Proxy 설정  (0) 2022.11.15
[Linux] CentOS7 - GIT을 이용한 버전관리 시스템 구축  (0) 2021.07.04
[Linux] CentOS7 - Java Web 서버 - Oracle 설치 및 설정  (0) 2021.07.04
    'LINUX/CentOS' 카테고리의 다른 글
    • [CentOS7] 사용자 계정 생성 및 Directory 만들기
    • [Linux] MariaDB 설치 및 세팅
    • [Linux] CentOS7 - HTTPS 접속을 위한 Apache 웹 서버의 Mod_Proxy 설정
    • [Linux] CentOS7 - GIT을 이용한 버전관리 시스템 구축
    사악미소
    사악미소

    티스토리툴바