Backup, restore e leitura de log com Dialog
Publicado por nelio 01/03/2009
[ Hits: 7.778 ]
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
Atualizar repositório no Linux desabilitando a hibernação do sistema
Pequeno, simples mas interessante chat desenvolvido totalmente em shell script.
configurar a rede wireless passando por roteador (melhorado e comentado)
Script gera uma chave md5 de todos os arquivos que forem especificados
diMail - envia e-mail com um front do dialog
Nenhum comentário foi encontrado.
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[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