Backup Automatizado
Publicado por Antônio Cláudio da Costa Ayres 03/10/2004
[ Hits: 12.534 ]
Homepage: http://www.onlydesign.com.br
Script que faz backup de um diretorio inteiro de forma automatica fazendo checagens conforme abaixo:
1º Verifica se você é root (só o root pode rodar)
2º Verifica se você tem permissão de gravação no diretorio onde vai o backup (pode ser que a partição de backup esteja montada como somente leitura)
3º Verifica se você passou apenas 1 parâmetro (o diretório a ser salvo). Caso negativo ele lhe ensina como usar o programa.
4º Aguarda 15 segundos antes de iniciar o script caso queira cancelar (pressionando Ctrl + C)
5º Faz o backup comprimido num ".tar.gz"
6º Armazena um log no mesmo diretorio onde ficou o backup com todas as cópias, data de inicio e data de término
7º Armazena ainda neste diretorio um log só com os erros que possivelmente tenham ocorrido
8º verifica o MD5 do arquivo final e salva no mesmo diretorio num arquivo de texto, pra qdo tu for voltar o backup poder checar a integridade do arquivo.
clear sleep 1 echo echo "------------------------------------------------------------" echo "| `date +%d/%m/%Y` - `date +%H:%M:%S` |" echo "| Backup Automatizado |" echo "| Por LedStyle |" echo "------------------------------------------------------------" sleep 3 if [ $UID -ne 0 ]; then echo "Somente o root pode disparar uma rotina de backup. Abortando..." exit elif [ $# -ne 1 ]; then echo echo echo "Bem vindo ao script automatizado de backup!" echo echo "Modo de uso:" echo echo " `basename $0` {diretorio}" echo echo echo "Substitua {diretorio} pelo diretorio a ser feito o backup" echo echo "Nao se esqueca de editar este script e alterar a variavel DIRETORIO_BACKUP" echo "colocando o diretorio onde os backups devem ser armazenados." exit elif [ -w $DIRETORIO_BACKUP ]; then echo echo "Voce optou por fazer um backup do diretorio $1 e todo seu conteudo." sleep 2 echo echo "Irei iniciar o backup em 15 segundos. Pressione Ctrl + C se quiser cancelar" printf " [" printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf ". " sleep 1 printf " ]" echo echo "Iniciando backup em:" echo "5" sleep 1 echo "4" sleep 1 echo "3" sleep 1 echo "2" sleep 1 echo "1" sleep 1 echo echo echo "O backup sera armazenado em $DIRETORIO_BACKUP/$NOME_ARQUIVO.tar.gz" echo echo "Iniciando processo de backup do diretorio $1 e todo seu conteudo." echo "Por favor aguarde... processando..." echo "LOG DO BACKUP DO DIA `date +%d/%m/%Y`" >> $DIRETORIO_BACKUP/$NOME_ARQUIVO.log echo "Hora de inicio do backup: `date +%H:%M:%S`" >> $DIRETORIO_BACKUP/$NOME_ARQUIVO.log tar -czvf $DIRETORIO_BACKUP/$NOME_ARQUIVO.tar.gz $1 >> $DIRETORIO_BACKUP/$NOME_ARQUIVO.log 2> $DIRETORIO_BACKUP/$NOME_ARQUIVO-erros.log md5sum $DIRETORIO_BACKUP/$NOME_ARQUIVO.tar.gz >> $DIRETORIO_BACKUP/$NOME_ARQUIVO-md5.txt echo echo sleep 1 echo "Backup realizado com sucesso! Voce pode visualizar o log em $DIRETORIO_BACKUP/$NOME_ARQUIVO.log" echo "Um arquivo com o md5 se encontra em $DIRETORIO_BACKUP/$NOME_ARQUIVO-md5.txt" echo "Hora de termino do backup: `date +%H:%M:%S`" >> $DIRETORIO_BACKUP/$NOME_ARQUIVO.log echo echo echo "Obrigado por usar o script automatizado de backup." else echo "Voce nao tem permissao para escrita no diretorio de backup: $DIRETORIO_BACKUP" | tee /root/backup-$DATA_ATUAL.log echo "Por favor cheque as permissões e tente novamente" | tee /root/backup-$DATA_ATUAL.log echo "Obrigado por usar o script automatizado de backup." fi
Recriando /dev/null facilmente
Registar automáticamente o dns de uma maquina no DNS via DHCP
Script de Backup para FITA DAT usando "tar"
zsh: Validar IPv4 utilizando PCRE
Alteração de Senha do Mysql (sem saber a senha anterior).
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (9)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta