Backup e envio do arquivo + md5sum para o FTP da escolha do usuário
Publicado por Marcelo Gonçalves (última atualização em 19/01/2016)
[ Hits: 3.370 ]
O script auxilia o usuário no dia-a-dia para gerar backups de uma pasta e enviar direto para um FTP. Quando executado no terminal, o script faz perguntas para que o usuário gere uma compactação personalizada e no final da rotina, o mesmo cria um arquivo md5sum para posterior verificação de sua integridade.
#!/bin/bash ###################################################################################### # # # # # rotina_de_backup.sh # # # # # # - Faz backup de um arquivo ou de uma pasta com possibilidade # # de enviar para um ftp de escolha do usuário # # # # # # - Os backups são de extensão .tar.bz2 # # # # Autor: Marcelo dos Santos Gonçalves <marcelo.dsgoncalves@gmail.com> # # # # # # # # Versão 1: Faz backup em .tar.bz2 e envia para um ftp de escolha do usuário # # # # Campinas, 14 janeiro 2016 # # # # # # # # # # Licença: GPL # # # # # ###################################################################################### echo -n '\033[5;47;1;31m Rotina de Backups - Incializando o backup ........ \033[m' echo echo -n "\033[5;47;1;31m Por favor escolha um nome para o backup: Ex.: Backup_Financeiro \033[m " read NOME echo -n "\033[5;47;1;31m Por favor informe o caminho da pasta onde você deseja salvar: Ex.: /home/ \033[m " read TEMP echo -n "\033[5;47;1;31m Por favor informe o caminho da pasta que você deseja fazer o backup: Ex.: /opt/financeiro/\033[m " read DOC # Data usada na nomenclatura do arquivo de backup #DATA=`date +%d%m%Y` # Barra vazia echo -n '\033[5;47;1;31m[.................................................] 0% \033[m' passo='\033[5;47;1;31m#####\033[m' for i in 10 20 30 40 50 60 70 80 90 100; do sleep 1 pos=$((i/2-5)) # Calcula a posição atual da barra echo -n '\033[G' # Vai para o começo da linha echo -n "\033[${pos}C" # Vai para a posição atual da barra echo -n "$passo" # Preenche mais um passo echo -n '\033[53G' # Vai para a posição da porcentagem echo -n "\033[5;47;1;31m$i % \033[m" # Mostra a porcentagem case "$i" in 10) # Processo para gerar o arquivo de backup BKP="$NOME"_`date +%d%m%Y`.tar.bz2 tar -P -jcpf $TEMP/$BKP $DOC ;; 30) # Processo para gerar o arquivo de verificação touch $TEMP/"$NOME"_`date +%d%m%Y`_hash.txt md5sum $TEMP/$BKP > "$NOME"_`date +%d%m%Y`_hash.txt ;; esac done echo echo -n "\033[5;47;1;31mVocê quer enviar o arquivo para um FTP? (sim | s ou nao | n)\033[m" read ENVIAR case $ENVIAR in s|sim) echo "\033[5;47;1;31m Qual é o endereço do FTP? \033[m" read HOST echo "\033[5;47;1;31m Qual é o usuário do FTP? \033[m" read USER echo "\033[5;47;1;31m Qual é a senha do FTP? \033[m" read PASSWD touch "$TEMP"FTP_"$NOME"_`date +%d%m%Y`.log #Comando para criar um arquivo vazio para colocar informação de log filename="$NOME"_`date +%d%m%Y`.tar.bz2 dirname="$TEMP" #Comandos para enviar FTP ftp -i -n "$HOST" <<END_SESSION quote USER "$USER" quote PASS "$PASSWD" mkdir "$NOME"_`date +%d%m%Y` cd "$NOME"_`date +%d%m%Y` put "$dirname""$filename" "$filename" put "$NOME"_`date +%d%m%Y`_hash.txt quit END_SESSION #Comando para gerar o Log de envio echo " Envio de arquivo realizado com sucesso " > "$TEMP"FTP_"$NOME"_`date +%d%m%Y`.log exit 0 ;; n|nao) echo "\033[5;47;1;31m Qual é o endereço do FTP? \033[m" exit 0 ;; *) echo "\033[5;47;1;31m Opção inválida, mas seu backup foi feito com sucesso na pasta desejada! \033[m" exit 1 ;; esac
Restauração de backup Firebird a partir de um arquivo .7Z contendo um GBK
Backup Database MySQL Automatizado
Script de Back Up, com limpeza de back ups antigos e e-mail com logs
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
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
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Youtube e networkmeneger para de funcionar (5)
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)