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.310 ]
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
rsyncdev-pt_BR_v6.sh - Um baixador automático de ISOs de Sabayon Linux, versão 6
Backup do PostgreSQL 8.3 e aviso por e-mail
Script de backup MySQL [melhorado]
Backup dinâmico de banco de dados MySQL
Realiza backup de VMs ligadas no XenServer 6.5
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)