2015년 11월 11일 수요일

linux - cron으로 mysql 자동백업

linux - cron으로 mysql 자동백업
 
Shell 작성

# mkdir /backup
# chmod 755 backup
# vi /root/backup.sh

backup.sh
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#!/bin/sh
DATE=`date +"%Y%m%d"`
PREV_DATE=`date --date '5 days ago' +"%Y%m%d"`

/usr/bin/mysqldump -u사용자id -p비번 DB명 > /backup/mysql_db_bak_${DATE}.sql
chown root.root  /backup/mysql_db_bak_${DATE}.sql
chmod 755  /backup/mysql_db_bak_${DATE}.sql
rm -Rf  /backup/mysql_db_bak_${PREV_DATE}.sql
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

전체DB를 백업하려면
mysqldump -u사용자id -p비번 DB명 > /backup/mysql_db_bak_${DATE}.sql
이 명령어대신
mysqldump  -u사용자id -p비번 -e --all-databases > /backup/mysql_db_bak_${DATE}.sql

 
원격DB백업
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
mysqldump -u 유저 -p"패스워드" -h 아이피주소 -P 포트번호 DBName > 백업명.sql
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
 
# chmod 100 /root/backup.sh


shell이 실행하는지 확인
#./root/backup.sh
실행후 /backup(백업데이터가 저장된폴더)로 가서 파일 확인

Cron 만들기

# crontab -e (매일 6시 백업)

00 06 * * * /root/backup.sh

크론 데몬 재실행
# /etc/rc.d/init.d crond restart

크론 확인
# crontab -l
 원격DB백업 부분은 첨부되었음.

나는 centos 7에서 자동백업 쉘을 만들었는데....
centos 7에는 marisdb 10.1을 설치하였고,
원격은 windows 2012에 mysql 5.6이 설치된상태임.

댓글 1개:

  1. 안녕하세요,

    다름이 아니라 ./root/backup.sh 를 하면 -bash: 20191102: command not found가 떠요 ㅠㅠ 혹시 이거 이유 알고 계신가요??
    감사합니다.

    답글삭제

vsftpd FTP 서버 접속은 성공하였으나, "디렉토리 목록 조회 실패" 현상 발생시

FTP Passive 모드를 활성화 필요. 1. vsftpd 설정 변경 /etc/vsftpd/vsftpd.conf 상에 아래 내용 추가 기입 #passive modpasv_enable=YES pasv_min_port=5001 pasv...