Backup completo
Publicado por Perfil removido (última atualização em 06/01/2015)
[ Hits: 9.891 ]
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
sync_local - backup/restauração local
Backup da pasta de usuário em sistemas GNU/Linux sem copiar os arquivos ocultos
Backup do PostgreSQL 8.3 e aviso por e-mail
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (0)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (6)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)