Backup, restore e leitura de log com Dialog

Publicado por nelio 01/03/2009

[ Hits: 7.654 ]

Download back.sh




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....

  



Esconder código-fonte

#!/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


Scripts recomendados

Copiar subdiretório presente em vários diretórios

Limpe seu server com o Clamav

Configuração de failover de links de internet

Configurador de interface de rede.

arrcomb: Gerando Arranjos e Combinações


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts