先修改脚本进行必要配置,然后以root用户执行.
1. 第执行远程备份时先用 first参数.
2. 本地备份用local参数
3. 远程备份不用参数<注意1>
注意:需要在另主机上Mysql用户用添加用户..
需要配置地方:
# host and mysql password
REMOTE_HOST="" #远程主机名或IP
REMOTE_PASSWORD="" #远程主机mysql中root@本地主机 密码.
# database path
DB_PATH="/var/lib/mysql" #本地mysql数据库路径
LOCAL_PASSWORD="" #本地mysql root用户密码
DB_BACKUP_PATH="/root/db_bk" #本地备份时数据保存路径
NO_BACKUP_DB="" 设置本地数据库中不想备份数据库名,用空格隔开
直接
#!/bin/sh
# mysqldump_all.sh
# this scripts is used to backup MySQL database bettwen tow MySQL SERVER!
# host and mysql password
REMOTE_HOST=""
REMOTE_PASSWORD=""
# database path
DB_PATH="/var/lib/mysql"
LOCAL_PASSWORD=""
DB_BACKUP_PATH="/root/db_bk"
# which database no back up, write db anme escap whit space!
# example;
# NO_BACKUP_DB="yns test ps_note"
# this said that db name is "yns" or "test" or "ps_note", then not backup them!
NO_BACKUP_DB=""
# get the database name and process _disibledevent=> for db in `ls $DB_PATH`; do
_backup="1"
[ -d $DB_PATH/$db ] ; then
for noBackDB in $NO_BACKUP_DB ; do
( test "$db" = "$noBackDB" ); then
#echo -n "...";
_backup="";
fi
done
[ $_backup ]; then
"$1" in
first)
echo -n "Crate db [ $db ] _disibledevent=> [ ! $result ]; then
echo "...Done!";
echo "...Fialed! check your configure plz!";
echo "Remote host said: $result";
exit
fi
;;
local)
# back up to localhost dir.
[ ! -d $DB_BACKUP_PATH ]; then
mkdir $DB_BACKUP_PATH
fi
echo -n "[ $db ]....Backup to local$DB_BACKUP_PATH with gzip";
[ -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
echo "[ $db ]";
echo "***This database to Not backup!...Operation CANCELED!";
fi
echo "[ $db ]";
echo "***Warning! Not a DataBbase. Backup Canceled***";
fi
done
echo "Usage: mysqldupm_all.sh [firs|local|help]";
echo "Some question ask for href="mailto:[email protected]";">[email protected]";
fi
# Ended all backup opretion!
echo "";
echo "Note: there is come wrong message white MySQL, you should check yourconfigure first!";
exit
最新评论