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 填密碼...