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.308 ]
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
Backup incremental com montagem automática e e-mail
Backup, compactação, verificação e transferência de arquivos
DriveTool.sh: um script para cópia rápida e segura de arquivos para unidades flash USB
MySQL - Script para backup automatizado
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
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)
Problemas ao instalar o PHP (10)
Descompactar arquivos winrar no linux (9)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)