mysql的本地備份和雙機(jī)相互備份腳本
自己寫(xiě)的,大家多指教. 
mysqldump_all.sh [first|local|help} 
先修改腳本進(jìn)行必要的配置,然后以root用戶(hù)執(zhí)行. 
1. 第一執(zhí)行遠(yuǎn)程備份時(shí)先用 first參數(shù). 
2. 本地備份用local參數(shù) 
3. 遠(yuǎn)程備份不用參數(shù)<注意1> 
注意:需要在另一主機(jī)上的Mysql用戶(hù)用添加用戶(hù).. 
需要配置的地方: 
# define host and mysql password 
REMOTE_HOST="" #遠(yuǎn)程主機(jī)名或IP 
REMOTE_PASSWORD="" #遠(yuǎn)程主機(jī)的mysql中的root@本地主機(jī) 密碼. 
# define database path 
DB_PATH="/var/lib/mysql" #本地mysql數(shù)據(jù)庫(kù)路徑 
LOCAL_PASSWORD="" #本地mysql root用戶(hù)密碼 
DB_BACKUP_PATH="/root/db_bk" #本地備份時(shí)數(shù)據(jù)保存的路徑 
NO_BACKUP_DB="" 設(shè)置本地?cái)?shù)據(jù)庫(kù)中不想備份的數(shù)據(jù)庫(kù)名,用空格隔開(kāi) 
直接下載 
#!/bin/sh 
# mysqldump_all.sh 
# this scripts is used to backup MySQL database bettwen tow MySQL SERVER! 
# define host and mysql password 
REMOTE_HOST="" 
REMOTE_PASSWORD="" 
# define database path 
DB_PATH="/var/lib/mysql" 
LOCAL_PASSWORD="" 
DB_BACKUP_PATH="/root/db_bk" 
# define which database no back up, write db anme escap whit space! 
# example; 
# NO_BACKUP_DB="yns test ps_note" 
# this said that if db name is "yns" or "test" or "ps_note", then not backup them! 
NO_BACKUP_DB="" 
# get the database name and process one by one 
echo "Start to Backup..."; 
#ls /var/lib/mysql > /tmp/mydb.all 
if [ "$1" != "help" ]; then 
for db in `ls $DB_PATH`; do 
if_backup="1" 
if [ -d $DB_PATH/$db ] ; then 
for noBackDB in $NO_BACKUP_DB ; do 
if ( test "$db" = "$noBackDB" ); then 
#echo -n "..."; 
if_backup=""; 
fi 
done 
if [ $if_backup ]; then 
case "$1" in 
first) 
echo -n "Crate db [ $db ] on $REMOTE_HOST first!" 
result=`mysqladmin -h $REMOTE_HOST --password=$REMOTE_PASSWORD create $db` 
if [ ! $result ]; then 
echo "...Done!"; 
else 
echo "...Fialed! check your configure plz!"; 
echo "Remote host said: $result"; 
exit 
fi 
;; 
local) 
# back up to localhost dir. 
if [ ! -d $DB_BACKUP_PATH ]; then 
mkdir $DB_BACKUP_PATH 
fi 
echo -n "[ $db ]....Backup to local$DB_BACKUP_PATH with gzip"; 
if [ -e "$DB_BACKUP_PATH/$db.gz" ]; then 
mv $DB_BACKUP_PATH/$db.gz $DB_BACKUP_PATH/$db.1.gz; 
fi 
mysqldump --password=Walte#Ming $db | gzip > $DB_BACKUP_PATH/$db.gz 
echo "...[OK]" 
;; 
*) 
# Do common Backup! 
echo -n "[ $db ]...Do Backup! ====>> $REMOTE_HOST/$db"; 
mysqldump --add-drop-table $db --password=$LOCAL_PASSWORD | mysql -h $REMOTE_HOST --password=$REMOTE_PASSWORD $db 
echo "....[OK]"; 
esac 
else 
echo "[ $db ]"; 
echo "***This database set to Not backup!...Operation CANCELED!"; 
fi 
else 
echo "[ $db ]"; 
echo "***Warning! Not a DataBbase. Backup Canceled***"; 
fi 
done 
else 
echo "Usage: mysqldupm_all.sh [firs|local|help]"; 
echo "Some question ask for walteyh@sohu.com"; 
fi 
# Ended all backup opretion! 
echo ""; 
echo "Note: if there is come wrong message white MySQL, you should check your configure first!"; 
exit
關(guān)鍵詞:mysql,備份
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 1      
- 1      
- 1      
- 1      
- 1      
- 1      
