Backup completo
Publicado por Perfil removido (última atualização em 06/01/2015)
[ Hits: 9.816 ]
Apenas um comentário: o rsync pode fazer backup diretamente via SSH, mas por segurança achei interessante montar as unidades em modo leitura no próprio servidor de backup. Segue o script:
#!/bin/bash echo " ######################################################### ######################################################### ################### BACKUP SYSTEM ####################### ######################################################### ######################################################### ############## by www.linux4sec.com.br ################## ######################################################### ######################################################### ######################################################### " #ATENÇÂO! # #Este script deve estar na seguinte estrutura: #Na pasta raiz / dentro de uma pasta denominada backup ( ou seja /backup/ ). # #As montagens dos servidores devem ser feitas em MODO LEITURA dentro da pasta: #/home/servidores/ que deverá ser criada e cada servidor deverá ser montado em sua #subpasta. Ex: /home/servidores/servidor1 /home/servidores/servidor1 ... #Pode ser usado para montagem "mount com cifs" para servidores Windows e "mount com sshfs" para servidores Linux. # #Este script deve ser posto para execução diária no crontab. ######################################################### ################## CONFIGURACAO ######################### # #Escreva abaixo seu e-mail completo: email=seuemail@provedor.com.br # #Digite o email de destino aonde será enviado os alertas: destino=destino@provedor.com.br # #Digite abaixo o endereço SMTP de seu provedor: smtp=smtp.provedor.com.br # #Digite a senha de seu e-mail: senha=suasenha # #Digite abaixo o numero de servidores que irá efetuar backup: numero=2 # #Digite o numero de dias que os arquivos deletados e logs ficarao guardados: dellog=60 # #Digite abaixo o nome das subpastas criadas no /home/servidores/, ( Pastas criadas #para mapear os servidores). Respeitando letras maiúsculas e minusculas e separe cada #um com uma vírgula e sem espaços. Ex: servidorweb,servidordados,servidorftp : ordem=seniorbd # #Depois de mapeado as raizes dos servidores a serem efetuado os backups, adicione agora #as pastas a serem feito os backups e as exeções conforme exemplo abaixo ( sem barra no final ): # #backups: backups=" servidor1/ servidor2/users/ " # #exceções: excessao=" servidor1/tmp servidor1/etc " ############# FIM DAS CONFIGURAÇÕES ##################### #INFORMAÇÕES: # #O backup será sincornizado na pasta BACKUP/ # #Os arquivos modificados antigos e deletados ficarão em BACKUP/incremental/l4smod-data/ # #Os logs ficarão em LOG/ # #Os arquivos modificados anitgos e deletados serão excluidos de acordo com o número de dias configurado. ########## NAO ALTERE NADA DAQUI PARA BAIXO ############# ### CRIANDO PASTAS NECESSARIAS: cd /backup/ mkdir BACKUP 2>&1&>/dev/null mkdir LOG 2>&1&>/dev/null mkdir BACKUP/incremental 2>&1&>/dev/null ### CHECA SE TODAS AS PASTAS ESTAO MONTADAS E SOMENTE LEITURA, CASO HAJA ALGUM PROBLEMA NAO EXECUTA O BACKUP E ENVIA UM EMAIL AVISANDO: servidores=$numero novaordem=$(echo -n "$ordem"|sed 's/,/)|(/g') montalog=$(mount| egrep -E "($novaordem)"|sed 's/ //g'|grep -v "^$") monta=$(echo -n "$montalog"|grep -v "^$"|wc|cut -c7-8|sed 's/ //g'|grep -v "^$") if [ "$monta" != "$servidores" ];then echo "Um dos servidores não está montado, verifique!" sendemail -f "$email" -t "$destino" -u "Backup L4S - ERRO" -m "Backup NAO efetuado, um dos servidores nao esta mapeado! Existem $monta servidores montados de $servidores - Servidores mapeados: $montalog" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no" exit else touch /home/servidores/*/1.txt 2>&1&>/dev/null ronly=$(echo $?) if [ $ronly != "1" ]; then echo "Uma das unidades montadas está em modo escrita, verifique e deixe-a somente leitura!" sendemail -f "$email" -t "$destino" -u "Backup L4S - ERRO" -m "Backup NAO efetuado, um dos servidores nao esta somente leitura por favor verifique!" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no" exit else ### GERANDO ARQUIVOS DE INCLUSAO OU EXCLUSAO: echo -n "$backups"|sed 's/ //g'|sed '/^$/d' >/tmp/.dentro.txt echo -n "$excessao"|sed 's/ //g'|sed '/^$/d' >/tmp/.fora.txt ### INICIANDO O BACKUP: rsync -vrtpzb --progress --backup-dir=incremental/l4smod-`date +%d_%m_%Y` /home/servidores/ /backup/BACKUP/ --files-from=/tmp/.dentro.txt --exclude-from=/tmp/.fora.txt --delete --log-file=/backup/LOG/`date +%d-%m-%Y`.log ### VERIFICA SE O BACKUP FOI FEITO COM SUCESSO E ENVIA UM EMAIL COM O LOG: if [ "$?" == "0" ];then sendemail -f "$email" -t "$destino" -u "Backup L4S - Sucesso" -m "Backup efetuado com sucesso" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no" -a "/backup/LOG/`date +%d-%m-%Y`.log" else sendemail -f "$email" -t "$destino" -u "Backup L4S - ERRO" -m "Backup NAO efetuado" -xu "$email" -xp "$senha" -s "$smtp:587" -o tls="no" -a "/backup/LOG/`date +%d-%m-%Y`.log" fi ### APAGA OS ARQUIVOS MODIFICADOS E DELETADOS ANTIGOS COM MAIS DE X DIAS ( ESPECIFICAR EM CONFIGURACOES ): find /backup/BACKUP/incremental/ -name l4smod-* -ctime +$dellog -exec rm -rf {} \; ### APAGA OS LOGS ANTIGOS COM MAIS DE X DIAS ( ESPECIFICAR EM CONFIGURACOES ): find /backup/LOG/ -name *.log -ctime +$dellog -exec rm -rf {} \; fi fi
Backup Database MySQL Automatizado
Backups de servidor CentOS com cPanel/WHM para servidor VPS Windows Server 2008
Ferramenta de backup do HD para dispositivos externos
DriveTool.sh: um script para cópia rápida e segura de arquivos para unidades flash USB
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Ingress NGINX Controller CVSS base score of 9.8 (1)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (1)
Linux Mint não conecta Wi-Fi sem fio (18)