mysql备份脚本参考

#!/bin/sh
MY="/usr/local/mysql/bin/mysql -umha -pxxx x.x.x.x -P7000"
MYDUMP="/usr/local/mysql/bin/mysqldump -umha -pxxx -h x.x.x.x -P7000"
DATE=`date +%F`
DATE_W=`date +%w`
ALLDATA_PATH=/var/backup/alldata
DATA_PATH=/var/backup/data

#dump all data on saturday.
if [ $DATE_W -eq 6 ];then
  $MYDUMP --single-transaction  -A -B --events --master-data=2 |gzip>$ALLDATA_PATH/mysqldata_${DATE}.sql.gz
  find $ALLDATA_PATH -type f -name "*.sql.gz" -mtime +90 |xargs rm -f
fi

#dump zabbix data.
[ -d $DATA_PATH/zabbix ] && rm -fr $DATA_PATH/zabbix
mkdir -p $DATA_PATH/zabbix
ZTableName=`$MY -D zabbix -e "show tables"|egrep -v "Tables_in_zabbix|history*|trend*|acknowledges|alerts|auditlog|events|service_alarms"`
for ZTable in $ZTableName
do
  $MYDUMP zabbix $ZTable |gzip >$DATA_PATH/zabbix/$ZTable.sql.gz
done
cd $DATA_PATH && tar zcf $DATA_PATH/zabbix_$DATE.tar.gz ./zabbix
rm -fr $DATA_PATH/zabbix

#dump urapport data.
[ -d $DATA_PATH/urapport ] && rm -fr $DATA_PATH/urapport
mkdir -p $DATA_PATH/urapport
DBNAME=`$MY -e "show databases"|egrep -v "zabbix|Database|*_schema|mysql"`
for DbName in $DBNAME
do
  mkdir -p $DATA_PATH/urapport/$DbName
  TableName=`$MY -D $DbName -e "show tables"|sed '1d'|egrep -v "cin_trace"`
  for Table in $TableName
  do
    $MYDUMP $DbName $Table |gzip >$DATA_PATH/urapport/$DbName/$Table.sql.gz
  done
done
cd $DATA_PATH && tar zcf $DATA_PATH/urapport_$DATE.tar.gz ./urapport
rm -fr $DATA_PATH/urapport

#dump mysql and routines
[ -d $DATA_PATH/mysql ] && rm -fr $DATA_PATH/mysql
mkdir -p $DATA_PATH/mysql
$MYDUMP mysql --events |gzip >$DATA_PATH/mysql/mysql.sql.gz
$MYDUMP -A -R -t -d >$DATA_PATH/mysql/routines.sql 
cd $DATA_PATH && tar zcf $DATA_PATH/mysql_$DATE.tar.gz ./mysql
rm -fr $DATA_PATH/mysql

#remove data before 90 days.
find $DATA_PATH -type f -name "*.tar.gz" -mtime +90 |xargs rm -f

my.png


发表评论

登录 后发表评论.