Backup, restore e leitura de log com Dialog
Publicado por nelio 01/03/2009
[ Hits: 8.074 ]
Pessoal, um colega do fórum estava precisando de um script que realiza se a função do titulo. Eu o fiz e vou postar aqui, pois achei que ficou bem legal e da uma grande idéia de como se trabalhar com dialog.
Eu sei que existem bugs no programa como está discrito no script e outros como títulos, etc... bestinhas, mas não pretendo continuar trabalhando nele, e do jeito que está se consegue trabalhar legal em cima. Pórem, qualquer dúvida se eu poder ajudar, postem ai....
#!/bin/sh
# autor Nelio B. Silva Jr
# este script eh somente para ter ideia, nao sendo recomendado para uso profissional, porem se consegue fazer um uso legal com algumas modificacoes
# Nele existe alguns, como diria, bugs, mas nao vou arrumar pois se eu continuar neste script, o pessoal na Arc Server vao ter que fechar as portas, rsrsrs,
# E os bugs do programa, sao por exemplo, nao esta chegando se usuario tem permissao, grupo, etc. existem algums paus tb de restore...
# enfim, eh isso qualquer coisa me falem....
#os caminhos abaixo, ao os caminhos que foram configurados, com o meu usuario oracle, alterem para o de vcs conforme necessario ou de interesse
caminho_backup=/home/oracle/rest #caminho da pasta de backup, como ja havia na minha / a pasta backup utilizei esta
verifica_existe=/home/oracle/teste/verifica_existe.log #todos os oracle testes que estao daqui para frente, mudem para os enderecos de scripts de vcs.
verifica_restore=/home/oracle/teste/verifica_restore.log #nao eh necessario alterar em mais nenhum outro lugar. somente neste bloco
existe_restore=/home/oracle/teste/existe_restore
radio_tmp=/home/oracle/teste/radio_tmp.log
logs=/home/oracle/teste/logs.log
logs_tmp=/home/oracle/teste/logs_tmp.log
inicio(){
var=$( dialog --backtitle SUPER_BACKUP --title Super_Backup --stdout --menu 'Escolha uma opcao: ' 0 0 0 1 'BACKUP' 2 'RESTORE' 3 'LER_LOG' )
case $var in
1) backup;;
2) restore;;
3) ler_log;;
*) clear; echo 'saindo do programa'; exit;;
esac
}
executa_backup(){
cd $var_bac
mkdir -p $caminho_backup$var_bac
cd $var_bac
echo Data do Backup: `date "+%d/%m/%y %H:%M"` >> $caminho_backup$var_bac/bkp.log
tar cvfz $caminho_backup"$var_bac"/backup.tar.gz * >> $caminho_backup$var_bac/bkp.log
var_wc=$(wc -l $caminho_backup$var_bac/bkp.log|cut -d " " -f1) >/dev/null
var_wc1=$(($var_wc - 2))
echo 'Total:' $var_wc1 'arquivos' >> $caminho_backup$var_bac/bkp.log
dialog --title 'CONFIRMACAO' --msgbox 'backup de '$var_bac' efetuado com sucesso!!!' 10 40
}
backup(){
var_bac=$(dialog --stdout --backtitle SUPER_BACKUP --title BACKUP --inputbox 'Digite o caminho' 0 0)
if [ $? = 0 ]; then
find $caminho_backup$var_bac -mmin +10 >$verifica_existe
if test -s $verifica_existe
then
dialog --title 'CONFIRMACAO' --yesno 'backup de '$var_bac' ja existe!!!\nDeseja faze-lo mesmo assim?' 10 40
if [ $? = 0 ]; then
executa_backup
inicio
else
inicio
fi
else
executa_backup
inicio
fi
else
inicio
fi
}
restore(){
cd $caminho_backup
find -iname *.tar.gz |cut -c2- > $verifica_restore
rm -rf $radio_tmp
while test -s $verifica_restore
do
var=`head -1 $verifica_restore`
echo "$var '' off " >> $radio_tmp
sed -i '1d' $verifica_restore
done
var1=`cat $radio_tmp` >/dev/null
var_restore=$(dialog --stdout --radiolist 'teste' 0 0 0 $var1)
if [ $? = 0 ]; then
dialog --title 'AVISO' --yesno 'Confirma restore de : '$var_restore 0 0
if [ $? = 0 ]; then
var2=$(dialog --stdout --backtitle SUPER_BACKUP --title RESTORE --inputbox 'Digite o caminho que deseja restaurar' 0 0 )
if [ $? = 0 ]; then
cd $var2
tar xvzf $caminho_backup$var_restore >/dev/null
dialog --title 'teste' --msgbox 'Restaurado com sucesso !!!' 0 0
inicio
else
dialog --title 'teste' --msgbox 'Restore cancelado' 0 0
inicio
fi
else
dialog --title 'teste' --msgbox 'Restore cancelado' 0 0
inicio
fi
else
dialog --msgbox 'Restore cancelado!!!' 0 0
inicio
fi
}
ler_log(){
cd $caminho_backup
find -iname *.log |cut -c2- > $logs
rm -rf $logs_tmp
while test -s $logs
do
var=`head -1 $logs`
echo "$var '' off " >> $logs_tmp
sed -i '1d' $logs
done
var1=`cat $logs_tmp` >/dev/null
var_restore=$(dialog --stdout --radiolist 'teste' 0 0 0 $var1)
if [ $? = 0 ]; then
dialog --title 'Leitura' --textbox $caminho_backup$var_restore 0 0
inicio
else
dialog --msgbox 'Leitura Cancelada!!!' 0 0
inicio
fi
}
inicio
Calcular sub-rede, listar e salvar MACs e IPs da rede local
Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.
Registar automáticamente o dns de uma maquina no DNS via DHCP
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Não consigo instalar distro antiga no virtualbox nem direto no hd (15)
Quais os códigos mais dificeis que vcs sabem fazer? (12)
systemd-resol... precisa ser reiniciado periodicamente [RESOLVIDO] (7)









