Backup interativo (exemplo de shell script)
Publicado por Alan Rafael Rodrigo Batista 06/12/2003
[ Hits: 12.659 ]
Escrevi este shell script com o intuito de posta-lo como exemplo para
que outras pessoas que queiram aprender esta linguagem o tenham como
exemplo.
Em breve postarei um artigo explicando passo a passo este script para
que possam iniciar nesta linguagem tão interessante e útil
#!/bin/bash ################################################################## #Script de backup interativo #Escrito por Alan Rafael R. Batista #website www.ntsim.com.br #Qualquer alteração envie um email para rafael@tecnologia.com.br #Você é bem vindo para alterar este script no que for necessário! # ################################################################## echo -e " Este é o Script de backup Interativo Desenvolvido por: Alan Rafael R. Batista Ele lhe farah algumas perguntas Para a boa execução deste script vc deve estar com privilegios de super-usuario (root) Vamos comecar... tecle enter........ " read nada # lista as particoes de disco montadas df echo -e "Estas são as particoes de disco montadas. Deseja desmontar alguma antes de começar? Obs: Se elas estiverem na fstab serão remontadas no final deste script. [1] para sim [2] para nao Opcao: \c" read desmont [ "$desmont" = 1 ] && conf=1 [ "$desmont" -gt 2 ] && conf=1 while [ "$conf" = 1 ] do #inicio desmont=1 if [ "$desmont" = 1 ] then echo -e "Qual destas vc quer desmontar? " cont=1 desmont2=1 while [ "$desmont" = 1 ] do echo -e "Digite o caminho igual o acima e tecle enter: \c" read caminho eval caminho`echo $cont`=$caminho # se digitado o caminho if [ -n "$caminho" ] then echo "" umount $caminho echo -e " Acabo de desmontar $caminho " cont=`expr $cont + 1` else echo "Voce não digitou o caminho suponho que desistiu de desmontar!" fi echo -e "Deseja desmontar mais alguma partição? [1] para sim [2] para nao Opcao: \c" read desmont if [ "$desmont" = 1 ] then conf=1 elif [ "$desmont" = 2 ] then echo "Beleza parei" conf=2 fi done elif [ "$desmont" -gt 2 ] then echo "Opcao invalida tente [1] sim ou [2] nao" echo -e "Opcao: \c" read desmont [ "$desmont" = 1 ] && conf=1 [ "$desmont" -gt 2 ] && conf=1 [ "$desmont" = 2 ] && conf=2 #Fim do deamont=1 fi #fim da pergunta done while [ -z $pasta ] do echo -e " Escreva agora o caminho da pasta que quer fazer backup Caminho: \c" read pasta if [ \( -z "$pasta" \) -o \( ! -d "$pasta" \) ] then echo "Voce deve colocar um caminho para o Backup e ele tem que ser válido" pasta= fi done while [ -z $lugar ] do echo -e " Escreva agora o caminho da pasta onde vamos gravar o backup Obs: Verifique se tem espaço nesta pasta hein. Caminho: \c" read lugar if [ \( -z "$lugar" \) -o \( ! -d "$lugar" \) ] then echo "Voce deve colocar um caminho para o Backup ser salvo e ele tem que ser válido" lugar= fi done echo -e " Agora escreva o nome do backup Obs: O backup tera o nome precedido da data de hoje Nome: \c" read nbkp if [ -z $nbkp ] then $nbkp=backup echo "Se voce não colocou o nome vou assumir o nome \"backup\"" fi echo -e "É agora vamos começar a fazer o backup!!! Prepare-se será uma aventura emocionante " DATA=`date +%d-%m-%Y` tar cvzf $lugar/$DATA-$nbkp.tar.gz $pasta >> $lugar/$DATA-log.txt 2> /dev/null i=1 [ -z "$cont" ] && cont=0 while [ "$i" -le "$cont" ] do echo -e "Agora vou remontar as particões que estavam no fstab e foram desmontadas " eval echo \$caminho$i eval montar=\$caminho$i if [ -n "$montar" ] then eval mount \$caminho$i eval echo -e "Montei \$caminho$i" fi i=`expr $i + 1` done
Configuração Teclado ABNT2 (Gnome3)
smbldap-groupCopy copiar grupos de user1 para user2
rc.squid start|stop|restart Servidor Proxy
Script para instalação de Aplicativos
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
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta