先修改脚本进行必要的配置然后以root用户执行
第一执行远程备份时先用 first参数
本地备份用local参数
远程备份不用参数<注意1>
注意:需要在另一主机上的Mysql用户用添加用户
需要配置的地方:
# define host and mysql password
REMOTE_HOST= #远程主机名或IP
REMOTE_PASSWORD= #远程主机的mysql中的root@本地主机 密码
# define database path
DB_PATH=/var/lib/mysql #本地mysql数据库路径
LOCAL_PASSWORD= #本地mysql root用户密码
DB_BACKUP_PATH=/root/db_bk #本地备份时数据保存的路径
NO_BACKUP_DB= 设置本地数据库中不想备份的数据库名用空格隔开
直接下载
#!/bin/sh
# mysqldump_allsh
# 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/mydball
if [ $ != help ]; then
for db in `ls $DB_PATH`; do
if_backup=
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 $ 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/$dbgz ]; then
mv $DB_BACKUP_PATH/$dbgz $DB_BACKUP_PATH/$dbgz;
fi
mysqldump password=Walte#Ming $db | gzip > $DB_BACKUP_PATH/$dbgz
echo [OK]
;;
*)
# Do common Backup!
echo n [ $db ]Do Backup! ====>> $REMOTE_HOST/$db;
mysqldump adddroptable $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_allsh [firs|local|help];
echo Some question ask for mailto:;>;
fi
# Ended all backup opretion!
echo ;
echo Note: if there is come wrong message white MySQLyou should check yourconfigure first!;
exit