스크립트 on/home/user/mysql_backup.sh
Crontab
# crontab-l
# m H Dom 월 다우 명령
* * */home/user/mysql_backup.sh
스크립트는 다음과 같습니다.
#! / 빈/sh
# mysql_backup.sh:backup MySQL 데이터베이스 및 계속 최신 5 일 백업.
#
# 마지막 업데이트: 2006 년 3 월 20 일
# ----------------------------------------------------------------------
# 이것은 GNU gpl 버전 2.0 이상 무료 쉘 스크립트
# 저작권 (C) 2006 샘 탕
# 피드백/의견/제안: http://www.real-blog.com/
# ----------------------------------------------------------------------
# MySQL 로그인 정보
# Db_user는 MySQL 사용자 이름
# db_passwd는 MySQL 비밀 번호
# db_host는 MySQL 호스트
# -----------------------------
Db_user "루트" =
db_passwd = "암호"
db_host = "localhost"
# 디렉토리를 백업 파일 이야기.
Backup_dir = "/ 홈/mybackup"
# 백업 파일 (일-월-년) 날짜 형식
시간 = "$ (날짜 +" %d-%m-%y ")"
# MySQL, mysqldump 및 일부 다른 빈의 경로
Mysql = "/ usr/지방/mysql/빈/mysql"
mysqldump = "/ usr/지방/mysql/빈/mysqldump"
Mkdir "mkdir/빈 /" =
Rm = "rm/빈 /"
mv = "/ 빈/뮤직 비디오"
gzip "/ 빈/gzip" =
# 저장소 백업 디렉터리는 쓰기 가능 확인
테스트! -W $backup _dir & & 에코 "오류: $backup _dir 유엔 iteable 하지 않습니다." & & 0 종료
# 이야기 최신 백업 디렉토리
테스트! -D "$backup _dir/backup.0/" & & "$backup _dir/backup.0/" $MKDIR
# 얻을 모든 데이터베이스
All_db = "$ ($MYSQL-u $db _user-h $db _host-p$ db_passwd-광우병 '데이터베이스 보기')"
$all _db에서 DB에 대 한
할
$MYSQLDUMP-u $db _user-h $db _host-p$ db_passwd $db | $GZIP-9 > "$backup _dir/backup.0/$time. $db. Gz"
완료
# 가장 오래 된 백업을 삭제합니다
테스트-d "$backup _dir/backup.5/" & & $RM-rf "$backup _dir/backup.5"
# 회전 백업 디렉터리
4에 int에 대 한 3 2 1 0
할
경우 (테스트-d "$backup _dir" 백업 /.) $int ")
다음
Next_int = 'expr $int + 1'
$MV "$backup _dir" / 백업. $int "" $backup _dir "/ 백업 합니다." $next _int "
Fi
완료
Exit 0;
참고 사항:
MySQL은 MySQL 사용자로 실행 하 고/가정/mybackup 쓰기 실패
chmod 777/가정/mybackup 문제가 해결 되었습니다.