Backup Zabbix Server 6.4 - DB e Aplicação separados Ubuntu Server 22.04
Criar pasta "Backup" no /root/
mkdir /root/Backup/
Criar pasta "Scripts" no /root/
mkdir /root/Scripts/
Instalar o NCFTPPUT
apt-get install ncftp -y
Criar um arquivo com nome .backupserver.cfg dentro da pasta /root/Scripts/, e neste arquivo, colocar os dados de acesso ao FTP
host 20.20.20.20 user usuarioFTP pass senhaFTP
Cria um arquivo com nome Cria_Pasta_Dia_Backup.sh dentro da pasta /root/Scripts/, e neste arquivo configurar script para criar uma pasta onde ficara salvo os arquivos do dia atual
#!/bin/bash diadehoje=$(date +'%Y%m%d') mkdir /root/Backup/BackupZabbix_$diadehoje
Cria um arquivo com nome Copia_Arquivos_Backup.sh dentro da pasta /root/Scripts/, e neste arquivo configurar script para copiar os arquivos que serão exportados para o FTP para a pasta do backup
Na cópia dos arquivos, será criada pastas com _ no nome, o _ corresponde a /. Desta maneira, fica mais facil o entendimento para futura importação, exemplo:
etc_zabbix = /etc/zabbix/
usr_share_zabbix = /usr/share/zabbix/
#!/bin/bash diadehoje=$(date +'%Y%m%d') cp -r /etc/zabbix/ /root/Backup/BackupZabbix_$diadehoje/etc_zabbix cp -r /usr/share/zabbix/ /root/Backup/BackupZabbix_$diadehoje/usr_share_zabbix cp -r /usr/lib/zabbix/ /root/Backup/BackupZabbix_$diadehoje/usr_lib_zabbix
Criar um arquivo com nome Gera_Backup_DB.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/sh #SCRIPT PARA BACKUP BASEADO EM MYSQL #VARIAVEL PARA ARMAZENAR A DATA PARA NOMEAR O BACKUP DATA=`/bin/date +%Y%m%d` #DEFINIR LOCAL E NOME DO BACKUP, UTILIZAR O $DATA PARA IDENTIFICAR A DATA DO BKP NOME="/root/Backup/BackupZabbix_$DATA/bkp_db_zabbix_$DATA.sql" #VARIAREIS CONEXAO COM DB HOST="localhost" USER="root" DATABASE="zabbix" # VERIFICAR SE O DIRETÓRIO DE DESTINO DO BACKUP EXISTE if [ ! -d "/root/Backup/BackupZabbix_$DATA" ]; then mkdir -p "/root/Backup/BackupZabbix_$DATA" fi # COMANDO DE DUMP DO BANCO mysqldump -h $HOST -u $USER -p'g45fr543efc43g54' $DATABASE > $NOME
Cria um arquivo com nome Compactar_Arquivos.sh, dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash dia=$(date +'%Y%m%d') tar -cvpzf /root/Backup/BackupZabbix_$dia.tar.gz /root/Backup/BackupZabbix_$dia/
Cria um arquivo com nome cria_arquivo_informacoes.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash cat >'/root/Backup/informacoes' <<EOT Versão SO: Versão Zabbix: EOT
Cria um arquivo com nome envia_bkps_ftp.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash dia=$(date +'%Y%m%d') ncftpput -f /root/Scripts/.backupserver.cfg -vZmRF / /root/Backup/BackupZabbix_$dia.tar.gz ncftpput -f /root/Scripts/.backupserver.cfg -vZmRF / /root/Backup/informacoes
Cria um arquivo com nome Excluir_bkps.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash rm -rf /root/Backup/*
Agendar CRON no arquivo /etc/crontab, no exemplo abaixo, vai fazer backup toda segunda-feira a noite, e na terça as 01:00 irá realizar a exclusão do backup de dentro do Zabbix
00 23 * * mon root bash /root/Scripts/Cria_Pasta_Dia_Backup.sh 05 23 * * mon root bash /root/Scripts/Copia_Arquivos_Backup.sh 05 23 * * mon root bash /root/Scripts/cria_arquivo_informacoes.sh 10 23 * * mon root bash /root/Scripts/Gera_Backup_DB.sh 30 23 * * mon root bash /root/Scripts/Compactar_Arquivos.sh 40 23 * * mon root bash /root/Scripts/envia_bkps_ftp.sh 00 03 * * tue root bash /root/Scripts/Excluir_bkps.sh
Programar auditoria dos backups
VMs - Zabbix / Rotina Toda Segunda-Feira Arquivo compactado, dentro dele (DB, /etc/zabbix/*, /usr/share/zabbix/*, /usr/lib/zabbix/*, /usr/local/share/snmp/mibs/, /etc/httpd/conf.d) Arquivo informacoes com as informações de versão