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.524 ]
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
Script para gravação de BKPs em DVDs-RW
Criptografando arquivos para enviar pra sua nuvem
Script Backup com Log e envio por Email
rsyncdev-pt_BR.sh - Um baixador automático de ISOs de Sabayon Linux
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)









