当前位置: 首页 > 知识 >正文

mysql数据备份脚本(mysql的本地备份和双机相互备份脚本不一样)

我自己写的,请多指教。

mysqldump_all.sh [first|local|help}

修改脚本以进行必要的配置,然后以root用户身份执行。

1.首先,在执行远程备份时使用第一个参数。

2.本地备份的本地参数

3.远程备份不需要参数注1

注意:另一台主机上的Mysql用户需要用。

需要配置的地方:

# define host and mysql password

REMOTE_HOST='' #远程主机名或IP。

REMOTE_PASSWORD='' # root@远程主机的mysql中的本地主机密码。

# define database path

DB_PATH='/var/lib/mysql' # Database path of local relational database

LOCAL_PASSWORD='' # User password of local mysql root directory.

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!

# 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

相关文章:
  • 4月27日基金净值:汇添富互联网核心资产六个月持有混合A最新净值0.6439,跌1.06%
  • 5月9日基金净值:信澳领先智选混合最新净值0.6691,跌1.78%
  • 7月12日基金净值:天弘沪深300ETF联接A最新净值1.2896,跌0.52%
  • 4月21日基金净值:东方红睿满沪港深混合(LOF)最新净值1.973,跌1.45%
  • 6月21日基金净值:朱雀产业臻选混合A最新净值1.5766,跌1.54%
  • 4月12日基金净值:景顺长城新能源产业股票A最新净值1.1591,跌0.4%_基金频道_证券之星
  • 5月15日基金净值:工银精选平衡混合最新净值0.7056,涨0.5%
  • 3月23日基金净值:易方达悦兴一年持有期混合A最新净值1.0253,涨0.23%_基金频道_证券之星
  • 6月30日基金净值:汇添富中证新能源汽车A最新净值2.0418,涨2.15%
  • 数据库级别判断数据重复