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
크론 확인
원격DB백업 부분은 첨부되었음.나는 centos 7에서 자동백업 쉘을 만들었는데....
centos 7에는 marisdb 10.1을 설치하였고,
원격은 windows 2012에 mysql 5.6이 설치된상태임.
안녕하세요,
답글삭제다름이 아니라 ./root/backup.sh 를 하면 -bash: 20191102: command not found가 떠요 ㅠㅠ 혹시 이거 이유 알고 계신가요??
감사합니다.