zabbix LTS 4备份
备份mysql数据库
核心命令:
mysqldump -h127.0.0.1 -P3306 -uroot -pxxx zabbix > /home/backupZabbix/db/2023_09_08.sql
shellScript:
#!/bin/bash
. /etc/profile
. ~/.bash_profile
dateBackup=$(date +%Y-%m-%d_%H:%M:%S)
dir="/home/backupZabbix/db/"
if [ ! -d "${dir}" ]
then
mkdir ${dir}
echo "创建文件夹成功"
else
echo "文件夹已经存在"
fi
# 需要备份的数据库名
dbNames=(zabbix)
for dbName in ${dbNames[@]}
do
echo "-----------------> 备份 ${dbName} 数据库 <-----------------" >> /home/backupZabbix/log/${dateBackup}.log
# 备份MySQL, 1>> 为正常输出,2>> 为错误或者警告输出到日志文件
mysqldump -uroot -pxxx ${dbName} 1>> ${dir}/${dateBackup}_zabbix.sql 2>> /home/backupZabbix/log/${dateBackup}.log
# 压缩文件 解压为 gzip -d mybatis.sql.gz
gzip ${dir}/${dateBackup}_zabbix.sql
done
echo -e " \n ----------------> 删除过期文件 <---------------------------" >> /home/backupZabbix/log/${dateBackup}.log
# 判断文件夹数量是否大于7,防止程序意外停止,删除所有备份
dirCount=`ls -l /home/backupZabbix/db/|grep "^d"|wc -l`
if [ ${dirCount} -gt 7 ]
then
# 删除超过七天的 sql 备份
find /home/backupZabbix/db -mtime +6 -name "*_*" -exec rm -rf {} \;
#删除超过七天的 日志
find /home/backupZabbix/db -mtime +6 -name "*.log" -exec rm -rf {} \;
echo -e " 删除过期文件成功" >> /home/backupZabbix/log/${dateBackup}.log
else
echo "删除过期文件失败,文件数量小于 7 " >> /home/backupZabbix/log/${dateBackup}.log
fi
sh xxx.sh运行
定时任务:
crontab -e
0 01 * * * . /etc/profile;/bin/sh /home/backupZabbix/backupMysqlZabbix.sh
还原zabbix
安装mysql
yum install MariaDB-server
还原
mysql -u root -p
create database zabbix character set utf8 collate utf8_bin; create user zabbix@localhost identified by ‘xxx’; grant all privileges on zabbix.* to zabbix@localhost; quit;
gunzip < all_abc.sql.gz | mysql -uroot -p12356
mysql -h127.0.0.1 -P3306 -uroot -pxzjzxcvb zabbix < 2021-07.sql