Backup, restore e leitura de log com Dialog
Publicado por nelio 01/03/2009
[ Hits: 7.654 ]
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
Copiar subdiretório presente em vários diretórios
Configuração de failover de links de internet
Configurador de interface de rede.
arrcomb: Gerando Arranjos e Combinações
Nenhum comentário foi encontrado.
Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha
Como preparar o Vim/Neovim para corrigir ortografia em português
Dark Web e Malwares na internet, quanto custa?
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Como verificar o hash de um arquivo baixado da Internet e como criar um hash
Debian 12 - IPTABLES - removendo NFTABLES
OverWatch 2 - Abrindo portas do jogo no Iptables.
Como instalar o adaptador wifi USB Intelbras ACtion A1200 no Linux Mint
Como normalizar seus arquivos MP3 para que fiquem no mesmo volume
Adaptado Bluetooth USB que funciona no Linux (27)
Erro nas atualizações do Void Linux (0)
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
[Shell Script] Tire screenshots com Scrot facilmente com Zscrot
[Shell Script] DioPSI - Script multidistro para instalar programas
[Shell Script] ARS Vídeos - Cortador de vídeos e webcam shooter