Backup Automatizado
Publicado por Antônio Cláudio da Costa Ayres 03/10/2004
[ Hits: 12.854 ]
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
slackpigs - veja os pacotes que mais ocupam espaço no Slackware
Baixar pdf do "slide share" sem login usando shell script
Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...
Backup com TAR em LOG usando FITA LTO/DLT com filtro de arquivos, SPLIT em FITAS, envio de LOG por E
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









