zabbix mysql 脚本路径_MySQL备份脚本(包含zabbix数据库)

这是一个用于按天备份MySQL数据库的自动化脚本,保留一周的备份数据。脚本中包含了创建备份目录、删除7天前的旧文件、锁定表、解锁表、压缩备份文件以及将备份文件异地拷贝的步骤。特别地,对于Zabbix数据库,只备份配置表,不备份历史数据。确保异地备份时已设置免密钥登录,否则需要手动输入密码或使用expect进行密码自动填充。
摘要由CSDN通过智能技术生成

需求:按天备份,保留一周,zabbix数据库不备份历史数据

MySQL版本:5.7.17

脚本:需要提前建立路径

mkdir -pv /opt/mysql_backup/auto_backup

cat /opt/mysql_backup/mysqlback.sh#!/bin/bash

# 0 3 * * * bash /opt/mysql_backup/mysqlback.sh &>/dev/null

DBUSER=root

DBPASS=**********

DATE=`date +%Y-%m-%d`

BACKPATH="/opt/mysql_backup/auto_backup"HOSTNAME=`/bin/hostname`

MYSQL_BACK_DIR="$BACKPATH/${HOSTNAME}_$DATE"MYSQLDUMP=/usr/bin/mysqldump

MYSQL=/usr/bin/mysql

TAR_DIR=$DATETAR=/bin/tar

RM=/bin/rm

FIND=/bin/find

DSTIP=192.168.100.131

#If no directory then create the directory

if [ ! -d $MYSQL_BACK_DIR ];then

mkdir -p $MYSQL_BACK_DIR

fi

#delete 7 day ago file

#lock tables

#$MYSQL -u$DBUSER -p$DBPASS -h$DBHOST -e "stop slave;"

#$MYSQL -u$DBUSER -p$DBPASS -h$DBHOST -e "flush tables with read lock;"

#list mysql databases and dump database

for i in $($MYSQL -u$DBUSER -p$DBPASS -e "show databases\G"|grep Database|grep -v schema|grep -v zabbix|grep -v sys|awk '{print $2}')

do

cd $MYSQL_BACK_DIR

$MYSQLDUMP -u$DBUSER -p$DBPASS --master-data=2 --flush-logs  --lock-all-tables --opt --default-character-set=utf8 --extended-insert=false --triggers -R --hex-blob --events   $i > $i.sql

#       $MYSQLDUMP -u$DBUSER -p$DBPASS -h$DBHOST --single-transaction --master-data=2 $i |gzip > $i.sql

done

#Backup Zabbix Configuration files.

cd $MYSQL_BACK_DIR

$MYSQLDUMP -u$DBUSER -p$DBPASS --master-data=2 --flush-logs  --lock-all-tables --opt --default-character-set=utf8 --extended-insert=false --triggers -R --hex-blob --events  zabbix  \

--ignore-table=zabbix.alerts \

--ignore-table=zabbix.auditlog \

--ignore-table=zabbix.auditlog_details \

--ignore-table=zabbix.escalations \

--ignore-table=zabbix.events \

--ignore-table=zabbix.history \

--ignore-table=zabbix.history_log \

--ignore-table=zabbix.history_str \

--ignore-table=zabbix.history_str_sync \

--ignore-table=zabbix.history_sync \

--ignore-table=zabbix.history_text \

--ignore-table=zabbix.history_uint \

--ignore-table=zabbix.history_uint_sync \

--ignore-table=zabbix.trends \

--ignore-table=zabbix.trends_uint > zabbix.sql

#unlock tables

#tar backfile and rm oldfile

cd $BACKPATH

$TAR czf $MYSQL_BACK_DIR.tar.gz ${HOSTNAME}_${DATE} > /dev/null 2>&1

scp $MYSQL_BACK_DIR.tar.gz $DSTIP:/opt/mysql_backup/auto_backup

$RM -rf ${HOSTNAME}_${DATE}

$FIND $BACKPATH -mtime +7 -exec $RM -rf {} \;

说明:以上脚本,zabbix数据库单独拎出来了,只需要备份配置表,不需要备份历史数据,如果mysql上没有zabbix数据库, 那一大段可以注释掉,异地备份需要设置免密钥登录,否则scp过程需要人工输入密码,导致执行等待;或者使用expect进行捕捉,自动添加密码(需要先安装expect)过程略。[lyj@lyj.com mysql_backup]$ pwd/opt/mysql_backup

[lyj@lyj.com mysql_backup]$ tree

.

├── auto_backup

│   └── server5_2017-03-06.tar.gz  #备份后的文件名称格式为“主机名_日期.tar.gz”

├── mysql_backup.sh

└── readme

1 directory, 3 files

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值