1、建立備份檔案夾[plain]view plaincopy
- cd/mnt/cp_disk/
- mkdirbackup
- cdbackup
- mkdirdatabak
- mkdirdb
- mkdirlogs
2、編寫執行指令碼[plain]view plaincopy
- #!/bin/bash
- backup_dir=/mnt/cp_disk/backup/databak#備份臨時檔案存放目錄
- backup_target_dir=/mnt/cp_disk/backup/db#備份檔案存放目錄
- backup_logs_dir=/mnt/cp_disk/backup/logs#備份日誌目錄
- db=gzcpc
- DATE=$(date+%Y%m%d)
- #得到10天前的日期
- ccDATE=$(date"-d10dayago"+%Y%m%d)
- echo"開始複製資料表">>$backup_logs_dir/$db$DATE
- echo"-----------`date+"%Y-%m-%d%H:%M:%S"`--------------------">>$backup_logs_dir/$db$DATE
- cp-R/var/lib/mysql/$db$backup_dir/#mysql資料庫的資料目錄為/var/lib/mysql/
- echo"開始壓縮資料表">>$backup_logs_dir/$db$DATE
- echo"------------------------">>$backup_logs_dir/$db$DATE
- cd$backup_dir
- tar-zcvf$db$DATE.tar.gz$db/&&echo"壓縮表結束">>$backup_logs_dir/$db$DATE
- mv$db$DATE.tar.gz$backup_target_dir/&&echo"轉移成功">>$backup_logs_dir/$db$DATE
- if[$?-eq0]
- then
- echo"backupsucceed">>$backup_logs_dir/$db$DATE
- else
- echo"backupfail">>$backup_logs_dir/$db$DATE
- fi
- echo"開始刪除原資料表">>$backup_logs_dir/$db$DATE
- echo"-----------------------">>$backup_logs_dir/$db$DATE
- rm-rf$backup_dir/*&&echo"刪除原資料表">>$backup_logs_dir/$db$DATE
- echo"刪除10天前資料">>$backup_logs_dir/$db$DATE
- if[-e$backup_target_dir/db$ccDATE.tar.gz]
- then
- rm-rf$backup_target_dir/db$ccDATE.tar.gz
- echo"Delete$backup_target_dir/db$ccDATE.tar.gzsucceed">>$backup_logs_dir/$db$DATE
- else
- echo"Notfound$backup_target_dir/db$ccDATE.tar.gzfile">>$backup_logs_dir/$db$DATE
- fi
- if[-e$backup_logs_dir/$db$ccDATE]
- then
- rm-rf$backup_logs_dir/$db$ccDATE
- echo"Delete$backup_logs_dir/$db$ccDATEsucceed">>$backup_logs_dir/$db$DATE
- else
- echo"Notfound$backup_logs_dir/$db$ccDATEfile">>$backup_logs_dir/$db$DATE
- fi
3、賦予指令碼許可權[plain]view plaincopy
- chmod755/home/backup_mysql.sh
4、建立定時任務[plain]view plaincopy
- crontab–e
- 10***/bin/bash/home/backup_mysql.sh