본문 바로가기
Tip & Tech

리눅스 정기 백업(mysql 포함) 설정

by witple [윗플] 2020. 12. 16.
  1. 디스크 여유공간 확인
    # df -Th

  2. 백업 폴더 생성 및 퍼미션 설정
    # mkdir [백업데이터를 보관할 디렉토리명]
    # chmod 700 [위에서 만든 디렉토리명]

  3. 백업 스크립트 작성 (압축백업, 누적 7일 기준)
    # cd /root
    # vi backup.sh
    에디터가 열리면 하단 별색처리된 부분을 복사해서 붙여넣습니다. 단 "[내용]"은 자신에게 맞게 고쳐주세요.

    #!/bin/bash

    tar -czpf [백업데이터를 보관할 디렉토리명].`date +%Y%m%d%H%M%S`.tgz [백업대상 디렉토리명] --exclude [백업대상에서 제외될 서브디렉토리 또는 파일명] 1>/dev/null 2>/dev/null

    mysqldump --extended-insert=FALSE -u[DB user] -p[DB password] [DB name] > /var/www/html/backup/[DB name].`date +%Y%m%d%H%M%S`.sql

    find /var/www/html/backup/ -type f -mtime +[7] | sort | xargs rm -f

  4. 스크립트 퍼미션 설정 및 테스트
    # chmod 700 backup.sh
    # ./backup.sh
    백업디렉토리에 제대로 백업파일이 생성되었는지 확인합니다.
    디렉토리 : 디렉토리명.20201216121230.tgz
    MySQL : [DB name].20201216121230.sql

  5. 정기적인 실행 설정 (1회/1일, 새벽 4시)
    # crontab -e
    0 4 * * * /root/backup.sh 1>/dev/null 2>/dev/null


4번에서 백업명령어를 수동으로 실행했을 때 아무런 에러가 없어야 합니다.
5번의 반영은 자고 일어나서 결과를 확인해보세요~



댓글