mysql自動備份開啟 MySQL自動備份

2021-10-18 23:48:27 字數 2551 閱讀 8903

mysql_user="root" # 使用者名稱

mysql_password="password" # 密碼

mysql_host="localhost" # ip

mysql_port="3306" # 埠號

mysql_charset="utf8" # 編碼方式

backup_db_arr=("db_name") # 要備份的資料庫名稱,多個用空格分開隔開 如("db1" "db2" "db3")

backup_location=/backup/mysqlbak # 備份資料存放位置,程式會自動建立資料夾(預設即可)

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_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_msg

fimysql -h$mysql_host -p$mysql_port -u$mysql_user -p$mysql_password <

use mysql;

select host,user from user where user='root' and host='localhost';

exit

endflag=`echo $?`

if [ $flag != "0" ]; then

echo "error:can't connect mysql server! backup stop!"

exit

else

echo "mysql connect ok! please wait......"

# 判斷有沒有定義備份的資料庫,如果定義則開始備份,否則退出備份

if [ "$backup_db_arr" != "" ];then

#dbnames=$(cut -d ',' -f1-5 $backup_database)

#echo "arr is ($)"

for dbname in $

doecho "database $dbname backup start..."

`mkdir -p $backup_dir`

`mysqldump -h$mysql_host -p$mysql_port -u$mysql_user -p$mysql_password $dbname --default-character-set=$mysql_charset | gzip > $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!"

fidone

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以上是shell指令碼檔案

要實現自動備份需要開啟定時任務,執行此指令碼檔案

mysql 自動備份許可權 Mysql 自動備份

很簡單的乙個自動備份方案 bas 件 backup.sh bin bash dbuser root dbpwd 123456 dbname jam00 delbackpath usr local mysql backup dbname date d 7 days ago y m d sql.gz r...

mysql自動備份庫 MySQL自動備份整庫指令碼

該指令碼支援自動備份,自動上傳到ftp伺服器,備份失敗自動傳送報警郵件 bin sh create by jianglei.yu on 20160421 使用測指令碼需要先安裝mutt郵件傳送工具。使用使用自動化安裝。詳細請參考 define mysql environments hostname ...

mysql備份作業 自動備份mysql

自動備份mysql linux python 名稱儲存為databasedump.py usr bin env python coding utf 8 time 16 10 30 下午9 04 import os import time user root 不要改 passwd passwd 填密碼...