Backup, restore e leitura de log com Dialog
Publicado por nelio 01/03/2009
[ Hits: 7.799 ]
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
Script Administração SquidFacil Ubuntu 11.10
Copia arquivos distribuidos em pastas diferentes para uma única pasta.
Executando comandos remotos usando sshpass
Firewall simples, com opções de redirecionamento
Nenhum comentário foi encontrado.
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? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)