neliobjr
(usa Red Hat)
Enviado em 20/11/2008 - 14:15h
ahuahauhau, vou querer esses pontos, transferido para minha materia de arquitetura, rsrsrs
Entao como os caras estao demorando muito para publicar, vou colar o script aqui e depois edito com o link, qualquer duvida posta ai...
abs...
#!/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