Amigos! Estou tentando melhorar meus scripts shell, e gostaria de saber de voces se existe alguma forma melhorar este script ....
O proximo passo será montar um pequeno console, pra escolher se eu vou backupear ou se eu quero restarurar um backup, pretendo usar o case pra fazer isso, e talvez tentar arriscar com umas janelinhas, toda sugestão será bem vinda! ps.: /sbin/shutdownplan e /sbin/startplan sao scripts de shell que startam o banco mas nao retornam nada que eu possa saber se deu erro ou nao ... eu nao queria ter aqueles comandos em varios arquivos, pois eles mudam muito... Os comandos geram os codigos de retorno de erro e sucesso mas nao consigo obterlos atraves da chamada por este script... é possivel fazer com que meus scripts startplan e shutdownplan repassem o codigo de saida do comando que eles executam ? Obrigado pela força! #!/bin/sh ################################################################# #Caminhos dos arquivos utilizados pelo script #Caminho para o arquivo de log ARQ_LOG='/home/dbtools/bkp_app/log/bkp-'`date +%A-%d-%B-%G`'.log' #caminho para o banco de dados DBDIR='/banco/oficial/plan' DBNAME='plan' ################################################################# #Mensagens enviadas pelo script MSG_OK_FITA='Backup efetuado com sucesso, substitua a fita.' MSG_ERR_FITA='Erro ao gravar o backup na fita.' MSG_OK_DISCO='Backup efetuado em disco com sucesso' MSG_ERRO_DISCO='Erro ao efetuar backup do banco, nao foi possivel compactar os arquivos.' ################################################################# #Funcoes do script devem ser colocadas aqui function MandaMsg { echo $* | mail -s "BACKUP Progress DB - Embalatec" [EMAIL PROTECTED] } function EscreveLog { HORA=`date +%H:%M:%S` echo [$HORA]-$* >> $ARQ_LOG } ################################################################## #Iniciando o log do backup EscreveLog 'Iniciando o procedimento de Backup' ##### #chutar o banco EscreveLog 'Chutando o banco de dados' /sbin/shutdownplan EscreveLog '[OK]' ##### #Posicionar no diretorio de backups EscreveLog 'Posicionando no diretorio de backup' cd /banco/backup && EscreveLog '[OK]' || EscreveLog '[ERRO]' ##### #compactar o banco EscreveLog 'Iniciando a compactacao do banco' tar -cjvf backup.tar.bz2 /banco/oficial/plan/* && EscreveLog '[OK]' || EscreveLog '[ERRO]' ##### #servir o banco EscreveLog 'Servindo o banco de dados' /sbin/startplan EscreveLog '[OK]' ##### #gravar bkp na fita EscreveLog 'Gravando o arquivo na fita' tar -cvf /dev/st0 backup.tar.bz2 && EscreveLog '[OK]' || EscreveLog '[ERRO]' ##### #ejetar a fita EscreveLog 'Rebobinando a fita' mt -f /dev/st0 rewind && EscreveLog '[OK]' || EscreveLog '[ERRO]' EscreveLog 'Ejetando a fita' mt -f /dev/st0 offline && EscreveLog '[OK]' || EscreveLog '[ERRO]' ##### #enviar email de estatisticas do banco ls -lh /banco/oficial/plan > status_extents.log echo "Segue em anexo a lista de arquivos do banco de dados, evitar que os extents ultrapassem a marca de 1.5gb" |mutt -a status_extents.log -s "Status dos extents Progress" [EMAIL PROTECTED] echo "Segue o log do backup do banco progress" |mutt -a $ARQ_LOG -s "Backup DB PROGRESS" #Futuramente criar grade de backup automatica para o banco de dados.