1、建立儲存備份檔案的路徑/mysqldata
#mkdir /bak/mysqlbak
2、建立/usr/sbin/bakmysql檔案
#vi /usr/sbin/bakmysql.sh
3、寫入指令碼如下指令碼
注意,如果是你的mysql密碼是帶有特殊字元的,比如!@# ,那麼需要在 -p參數後面加上‘’,把密碼放在‘’中,'123!@#'
#!/bin/bash
#Name:bakmysql.sh
#This is a ShellScript For Auto DB Backup and Delete old Backup
backupdir=/bak/mysqlbak
time=` date +%Y%m%d%H `
mysqldump --opt -h192.168.1.1 -uroot -p123456 dbname | gzip > $backupdir/mo$time.sql.gz
#
find $backupdir -name "mo*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
指令碼解析:
backupdir Database Backup路徑
time時間點
mysqldump :mysql備份工具,--opt -h 遠程執行備份操作,
dbname:資料庫名稱,
gzip:壓縮成gzip格式的。
最後一個行是保證5最新個備份檔案
4、定時任務
修改/etc/crontab
#vi /etc/crontab
在下面添加
01 3 * * * root /usr/sbin/bakmysql
表示每天3點鐘執行備份
5、重新啟動crond
# /etc/rc.d/init.d/crond restart (RedHat)
#/etc/init.d/cron restart (Ubuntu)
完成。
手工恢複:
先解壓gz檔案
gunzip xxx.gz
mysql -u root -p --default-character-set=utf8
use dbname
source /root/xx.sql
搞定
so esay ,那裡不會點那裡。