zabbix数据库备份脚本及导入数据库

本文提供了一个用于备份Zabbix数据库的Shell脚本实例,该脚本排除了监控历史数据的备份,仅备份指定的数据表,并记录备份过程的日志。

#!/bin/bash

#sadoc.blog.51cto.com

#备份zabbix数据库,不备份监控历史数据


HOST=127.0.0.1

SQL_PORT=3306

SQL_USER=zabbix

SQL_PASS=123456

DATABASE_NAME=zabbix

DUMP_PATH=/backup/mysql_backup

DATE=$(date '+%Y-%m-%d:%H:%M:%S')

DATED=$(date '+%Y-%m-%d')


[ -d ${DUMP_PATH} ] || mkdir -p ${DUMP_PATH}

cd ${DUMP_PATH}

[ -d logs ] || mkdir -p logs

[ -d ${DATED} ] || mkdir -p ${DATED}

cd ${DATED}

ALL_TABLES=$(mysql -u${SQL_USER} -p${SQL_PASS} -P${SQL_PORT} -h${HOST} ${DATABASE_NAME} -e "show tables" | \

egrep -v "(Tables_in_zabbix|trends*|acknowledges|alerts|auditlog|events|service_alarms)")

for TABLE_NAME in ${ALL_TABLES}

do

mysqldump -u${SQL_USER} -p${SQL_PASS} -P${SQL_PORT} -h${HOST} ${DATABASE_NAME} ${TABLE_NAME} > ${TABLE_NAME}.sql

sleep 10

done


[ $? = 0 ] && echo "${DATE}: Backup zabbix_mysql succeed" >> ${DUMP_PATH}/logs/zabbix_dump.log

[ $? != 0 ] && echo "${DATE}: Backup zabbix_mysql not succeed" >> ${DUMP_PATH}/logs/zabbix_dump_error.log


cd ${DUMP_PATH}/

rm -rf $(date +%Y%m%d --date='7 days ago')

exit 0




下面导入数据库:

删除数据库

drop database zabbix;

创建数据库

create database zabbix character set utf8 collate utf8_bin;

use zabbix;

source /backup/mysql_backup/xxx.sql;


本文转自  一招拜师  51CTO博客,原文链接:
http://blog.51cto.com/sadoc/1905007

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值