Backup interativo (exemplo de shell script)
Publicado por Alan Rafael Rodrigo Batista 06/12/2003
[ Hits: 12.682 ]
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
Verifica se quem executa é root
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? (6)