找乙個目錄新建乙個指令碼,這裡選擇/var/bin
vim /var/bin/mysql_data_backup.sh
指令碼:
# 以下配置資訊請自己修改
mysql_user="root" #mysql備份使用者
mysql_password="root" #mysql備份使用者的密碼
mysql_host="localhost"
mysql_port="3306"
mysql_charset="utf8" #mysql編碼
backup_db_arr=("db1" "db2") #要備份的資料庫名稱,多個用空格分開隔開 如("db1" "db2" "db3")
backup_location=/opt/mysqlbackup #備份資料存放位置,末尾請不要帶"/",此項可以保持預設,程式會自動建立資料夾
expire_backup_delete="on" #是否開啟過期備份刪除 on為開啟 off為關閉
expire_days=3 #過期時間天數 預設為三天,此項只有在expire_backup_delete開啟時有效
# 本行開始以下不需要修改
backup_time=`date +%y%m%d%h%m` #定義備份詳細時間
backup_ymd=`date +%y-%m-%d` #定義備份目錄中的年月日時間
backup_3ago=`date -d '3 days ago' +%y-%m-%d` #3天之前的日期
backup_dir=$backup_location/$backup_ymd #備份檔案夾全路徑
welcome_msg="welcome to use mysql backup tools!" #歡迎語
# 判斷mysql是否啟動,mysql沒有啟動則備份退出
mysql_ps=`ps -ef |grep mysql |wc -l`
mysql_listen=`netstat -an |grep listen |grep $mysql_port|wc -l`
if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then
echo "error:mysql is not running! backup stop!"
exit
else
echo $welcome_msgfi
# 連線到mysql資料庫,無法連線則備份退出
mysql -h$mysql_host -p$mysql_port -u$mysql_user -p$mysql_password <$backup_dir/$dbname-$backup_time.sql.gz`
flag=`echo $?`
if [ $flag == "0" ];then
echo "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"
else
echo "database $dbname backup fail!"fi
done
else
echo "error:no database to backup! backup stop"
exit
fi# 如果開啟了刪除過期備份,則進行刪除操作
if [ "$expire_backup_delete" == "on" -a "$backup_location" != "" ];then
#`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;`
`find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`
echo "expired backup data delete complete!"
fiecho "all database backup success! thank you!"
exit
fi
賦予指令碼許可權
chmod 600 /opt/mysqlbackup.sh
chmod +x /opt/mysqlbackup.sh
新增定時器
vi /etc/crontab
指定每天凌晨1點執行備份
00 01 * * * /var/bin/mysql_data_backup.sh
重啟
/sbin/service crond reload //重新載入配置
/sbin/service crond restart //重啟服務
cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
檢視crontab服務狀態:service crond status
手動啟動crontab服務:service crond start
檢視crontab服務是否已設定為開機啟動,執行命令:ntsysv
加入開機自動啟動:
chkconfig --level 35 crond on
MySQL資料庫定時備份
建立shell指令碼 在 usr local mysql 資料夾下建立backupdb.s 件 指令碼檔案可以自定義位置 vim backupdb.sh 建立指令碼內容如下 bin sh db user root db passwd 123123 db name userdb name date y...
MySql 資料庫定時備份
1 使用sqldump 任務計畫 mysqldump備份成sql檔案 假想環境 mysql 安裝位置 c mysql 論壇資料庫名稱為 bbs mysql root 密碼 123456 資料庫備份目的地 d db backup 指令碼 rem code start echo off cd c mys...
定時備份mysql資料庫
echo off set ymd date 4 date 5,2 date 8,2 e study phpstudy mysql bin mysqldump opt u root password root esc d db backup db ymd sql echo on 然後將txt文件改成b...