这是在 CentOS8编译安装Zabbix4.4.5 的基础上进行的。
登录MariaDB:
查看所有数据库用户及其主机信息:
select user,host from mysql.user;
Zabbix所使用的数据库用户zabbix@localhost及其权限:
MariaDB [(none)]> show grants for zabbix@localhost;
+---------------------------------------------------------------------------------------------------------------+
| Grants for zabbix@localhost |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY PASSWORD '*DEEF4D7D88CD046ECA02A80393B7780A63E7E789' |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'localhost' |
+---------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
注释:数据库用户zabbix@localhost已经有备份库zabbix的权限了。
显示所有的库:
show databases;
数据库的备份命令:
[root@centos8 ~]# which mysqldump
/usr/bin/mysqldump
Zabbix的站点目录:
[root@centos8 ~]# cd /var/www/html/
[root@centos8 html]# ls
phpMyAdmin zabbix
备份脚本 backup_zabbix.sh 的内容:
[root@centos8 ~]# cat backup_zabbix.sh
#!/bin/bash
#指定备份文件存放的目录;假如目录不存在,则自动创建
Backup_Home="/home/backup/"
if [ ! -d ${Backup_Home} ]; then
mkdir -p ${Backup_Home}
fi
#指明数据库备份命令的位置:
MySQL_Dump="/usr/bin/mysqldump"
#指明备份数据库时用到的用户名和密码:
MYSQL_UserName='zabbix'
MYSQL_PassWord='zabbix'
#备份Zabbix的站点目录:
Backup_time=`date +'%Y%m%d%H%M%S'`
web1="zabbix"
cd /var/www/html/
tar -czvf ${Backup_Home}${web1}_${Backup_time}.tar.gz ${web1}
#备份Zabbix的数据库:
MYSQL_Db1='zabbix'
MYSQL_Db1_file=${Backup_Home}${web1}_db-$MYSQL_Db1-${Backup_time}.sql
${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $MYSQL_Db1 > ${MYSQL_Db1_file}
手动运行备份脚本:
[root@centos8 ~]# whoami
root
[root@centos8 ~]# bash backup_zabbix.sh
备份成功:
[root@centos8 ~]# cd /home/backup/
[root@centos8 backup]# du -ah
16M ./zabbix_20210117093733.tar.gz
3.6M ./zabbix_db-zabbix-20210117093733.sql
19M .
[root@centos8 backup]# ls -lh
总用量 19M
-rw-r--r-- 1 root root 16M 1月 17 09:37 zabbix_20210117093733.tar.gz
-rw-r--r-- 1 root root 3.6M 1月 17 09:37 zabbix_db-zabbix-20210117093733.sql
######
还原Zabbix
删除旧的站点目录:
[root@centos8 ~]# rm -rf /var/www/html/zabbix/
还原站点目录:
[root@centos8 ~]# cd /home/backup/
[root@centos8 backup]# tar -zxf zabbix_20210117093733.tar.gz -C /var/www/html/
[root@centos8 ~]# cd /var/www/html/zabbix/
[root@centos8 zabbix]# ls
注释:截图有省略。
还原站点数据库:
登录MariaDB:(使用数据库用户zabbix@localhost)
mysql -u"zabbix" -p"zabbix"
还原站点数据库:
MariaDB [(none)]> drop database zabbix;
Query OK, 149 rows affected (0.441 sec)
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> source /home/backup/zabbix_db-zabbix-20210117093733.sql
Zabbix的数据库配置文件:
[root@centos8 ~]# cd /var/www/html/zabbix/conf
[root@centos8 conf]# ll
总用量 12
-rw-r--r-- 1 root root 1036 7月 12 2020 maintenance.inc.php
-rw-r--r-- 1 root root 415 7月 12 2020 zabbix.conf.php
-rw-r--r-- 1 root root 741 7月 12 2020 zabbix.conf.php.example
[root@centos8 conf]# vi zabbix.conf.php
注释:数据库用户zabbix@localhost的信息要与Zabbix的数据库配置文件的信息一致。
[root@centos8 ~]# mysql -u"zabbix" -p"zabbix" -e "show grants for zabbix@localhost;"
+---------------------------------------------------------------------------------------------------------------+
| Grants for zabbix@localhost |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY PASSWORD '*DEEF4D7D88CD046ECA02A80393B7780A63E7E789' |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'localhost' |
+---------------------------------------------------------------------------------------------------------------+
笺注:实验中,Zabbix的备份和还原都是正常的。
相关文章:
CentOS8使用计划任务
CentOS6使用Python3脚本备份站点(Zabbix)+crontab计划任务 |