매일 MySQL 데이터 베 이 스 를 자동 으로 백업 하 는 셸 스 크 립 트

데이터 베 이 스 를 자주 백업 하 는 것 은 좋 은 습관 이다. 데이터 베 이 스 를 손상 시 키 거나 잃 어 버 릴 확률 이 낮 지만 이런 일이 발생 하면 후회 하 는 것 은 소 용이 없다.일반 사이트 나 응용 배경 에는 데이터 베 이 스 를 백업 하 는 기능 버튼 이 있 지만 수 동 으로 실행 해 야 합 니 다.우 리 는 매일 자동 으로 백업 하 는 안전 한 방법 이 필요 하 다.아래 의 이 셸 스 크 립 트 는 Crontab 설정 을 통 해 매일 MySQL 데이터 베 이 스 를 백업 할 수 있 는 방법 입 니 다.
#!/bin/bash
# 数据库认证
 user=""
 password=""
 host=""
 db_name=""
# 其它
 backup_path="/path/to/your/home/_backup/mysql"
 date=$(date +"%d-%b-%Y")
# 设置导出文件的缺省权限
 umask 177
# Dump数据库到SQL文件
 mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql

위의 스 크 립 트 를 통 해 우 리 는 매일 sql 백업 파일 을 내 보 낼 수 있 습 니 다. 파일 의 이름 은 당일 날짜 에 따라 생 성 됩 니 다.오 랜 시간 이 지나 면 이런 파일 이 많이 생 성 됩 니 다. 오래된 백업 파일 을 정기 적 으로 삭제 할 필요 가 있 습 니 다. 아래 의 이 명령 은 이 작업 을 하 는 것 입 니 다. 위의 스 크 립 트 뒤에 추가 할 수 있 습 니 다.
# 删除30天之前的就备份文件
 find $backup_path/* -mtime +30 -exec rm {} \;

위의 스 크 립 트 를 사용 할 때 문제 가 있 었 습 니 다. Crontab 는 스 크 립 트 내 보 내기 가 잘못 되 지 않 았 지만 빈 SQL 파일 을 내 보 냈 습 니 다. 하지만 콘 솔 에 로그 인하 여 이 스 크 립 트 를 수 동 으로 실행 하 는 것 은 백업 에 성 공 했 습 니 다.나중에 크 론 타 브 가 스 크 립 트 를 실행 하 는 것 은 시스템 환경 정보 가 부족 해서 찾 을 수 없 었 다 mysqldump. 고 치 는 방법 은 mysqldump 전 경 로 를 사용 하면 된다.잘못된 정 보 를 보고 하지 않 은 이 유 는 mysqldump 잘못된 정 보 를 stderr 에 출력 했 기 때문이다.명령 의 뒤쪽 끝 에 '2 > & 1' 이라는 정 보 를 연결 하면 잘못된 정 보 를 볼 수 있 습 니 다.
mysqldump -ujoe -ppassword > /tmp/somefile 2>&1

좋은 웹페이지 즐겨찾기