shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Problema no \


From: Luiz Roberto Ferreira
Subject: Re: [shell-script] Re: Problema no \
Date: Sat, 20 Sep 2014 05:14:45 -0300

Duvida com \ - Resolvido

Em 16/09/2014 23:23, "Luiz Roberto Ferreira" <address@hidden> escreveu:
Olá!

Desculpem o atraso na resposta deste tópico... Realmente, depois de incluir o sed, funcionou o script, e copiou o scheduler exatamente como o original. (E:\bkporacle\*)
Já vi algo a respeito do Bacula, porém como estou em um projeto em uma grande empresa (mais de 4 mil servidores) com OSs NT, Unix e Linux, o sistema de backup é o TSM, da IBM.
Aproveito então e copio aqui o script. É óbvio que não é mais simples do que os grandes gurús fariam para melhorar, porém quebra um galho enorme ao reiniciar um backup em linha de comando, que é caso nesta empresa.
Valeu à todos que me deram a dica. Realmente havia pensado nos \\\ da vida, sed, porém pensei que não iria dar certo, mas... Em Shell Script não existe a palavra impossível!

Abaixo o script. Só um detalhe se alguém for utilizar; Está faltando somente a deleção dos schedulers com mais de 6 dias, ao qual estou terminando nesta semana.
Abs,
Luiz

#!/usr/bin/ksh
# SCRIPT DE RESTART DE BACKUP CANCELADO (APOS CHECAGEM DO PROBLEMA) 
# ELABORADO POR: LUIZ ROBERTO EM 28/04/2014
# Ultima alteracao em 15/09/2014 por Luiz Roberto (Inclusao da informacao de steps + preparacao de delecao das 
#                                                  copias do scheduler com mais de 6 dias)


#[-- SETANDO VARIAVEIS --]
IFS='
'
. /home/P0623962/.profile
cd /tmp
clear
#[-----------------------]


#[-- VALIDANDO A VARIAVEL DO NOME DO BACKUP -------------------------------------------]
if [ "$1" = "" ]
  then
clear
    echo "

NAO FOI INFORMADO O NOME DO BACKUP (SCHEDULER NAME)



                          PROCESSO ABORTADO



"
exit
  else
    NOME_SCHED=`echo $1 | tr [a-z] [A-Z]`
    
fi
#[-------------------------------------------------------------------------------------]



echo "
Preparando o backup para reeschedular...

"

#[-- INICIO DO SELECT --------------------------------------------------------------------------------]

#[-- MONTANDO A LINHA DE COMANDO PARA RESTARTAR O BACKUP --]
`dsmadmc -id=P0623962 -password=$PAS -commadelimited -outfile=/tmp/$$_cliente \
"select SCHEDULE_NAME,DOMAIN_NAME,ACTION,OBJECTS,OPTIONS,DESCRIPTION from client_schedules where SCHEDULE_NAME='${NOME_SCHED}'"` >/dev/null 2>&1


grep ^"${NOME_SCHED}" /tmp/$$_cliente > /tmp/$$_cliente1
if [ ! $? = 0 ]
  then
    echo "
      O nome do schedule ${NOME_SCHED} nao foi encontrado na base de dados do TSM.

      Favor verificar.

      Processo encerrado


"
exit
fi

#[-- DELETANDO AS COPIAS DOS SCHEDULERS COM MAIS DE 6 DIAS ---------------------------------------------------]
echo "

Step 1/5  

Deletando as copias dos schedulers com mais de 6 dias...

"

# `dsmadmc -id=P0623962 -password=$PAS -commadelimited -outfile=/tmp/$$_del_sch \
# "select DOMAIN_NAME,SCHEDULE_NAME,NODE_NAME from events where SCHEDULE_NAME like '%_RESTART' and SCHEDULED_START >= '2014-05-05' and SCHEDULED_START <= current_timestamp - 144 hours"` >/dev/null 2>&1


# grep _RESTART /tmp/$$_del_sch > /tmp/$$_del_sch1



#[------------------------------------------------------------------------------------------------------------]

cat $$_cliente1 | sed "s.\\\./."g > $$_cliente1a 2>/dev/null


for MONTA in `cat $$_cliente1a`
  do
    SCH=`echo "$MONTA" | cut -f1 -d,`
    DOM=`echo "$MONTA" | cut -f2 -d,`
    DES=`echo $MONTA | cut -f6 -d,`
      if [ "${DES}" = "" ]
        then
          DES1="SEM DESCRICAO DESTE BACKUP"
        else
          DES1=${DES}
      fi
done

clear
echo "

RESTART DO BACKUP ${SCH}

DESCRICAO: ${DES1}

Confirma? (s)(n)\c >
"
read CONFIRMA


if [ "$CONFIRMA" = s -o "$CONFIRMA" = S ]
  then
    : 
  else
    echo "
      Backup nao confirmado.

      Processo encerrado.
   
"
   exit
fi


#[-- COPIANDO O SCHEDULER ------------------------------------------------------------------------------------]
echo "

Step 2/5  

Copiando o scheduler e renomendado para _RESTART 

"

# =======================================================================================================
echo 
# =======================================================================================================
#[-- CRIANDO COPIA DO BACKUP -----------------------------------------]
`dsmadmc -id=P0623962 -password=$PAS -commadelimited \
copy sch "${DOM}" "${SCH}" "${DOM}" "${SCH}_RESTART" >/tmp/$$_resultado_copy` 2>/dev/null
#[--------------------------------------------------------------------]


#[-- COPIANDO O SCHEDULER ------------------------------------------------------------------------------------]
echo "

Step 3/5  

Coletando o nome do node do backup ${SCH}

"

`dsmadmc -id=P0623962 -password=$PAS -commadelimited -outfile=/tmp/$$_node_name \
"select SCHEDULE_NAME,NODE_NAME from events where SCHEDULE_NAME='${NOME_SCHED}'"` >/dev/null 2>&1

NOME_NODE="`grep ${NOME_SCHED} /tmp/$$_node_name | sort | uniq | cut -f2 -d,`"


#[-- ASSOCIANDO O SCHEDULER ----------------------------------------------------------------------------------]
echo "

Step 4/5  

Associando o backup ${SCH}_RESTART na tabela

"

#[-- DEFININDO COPIA DO BACKUP --------------------------]
`dsmadmc -id=P0623962 -password=$PAS -commadelimited -outfile=/tmp/$$_def_assoc \
def assoc "${DOM}" "${SCH}_RESTART" "${NOME_NODE}"` 2>/dev/null
#[-------------------------------------------------------]


#[-- RESTARTANDO O BACKUP ------------------------------------------------------------------------------------]
echo "

Step 5/5  

Reiniciando o backup ${SCH}_RESTART

"

`dsmadmc -id=P0623962 -password=$PAS -commadelimited -outfile=/tmp/$$_upd_restart \
upd sch "${DOM}" "${SCH}_RESTART" Startt=now startd=today PERU=Onetime` >/dev/null 2>&1
#[-------------------------------------------------------------]

(
rm -f /tmp/$$_restart_backup
rm -f /tmp/$$_cliente
rm -f /tmp/$$_cliente1
rm -f /tmp/$$_cliente1a
rm -f /tmp/$$_node_name
rm -f /tmp/$$_resultado_copy
rm -f /tmp/$$_del_sch /tmp/$$_del_sch1 /tmp/$$_def_assoc
) 2>/dev/null




Em 15 de setembro de 2014 12:23, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:
 

E diga-se de passagem, o Bacula é o melhor gerenciador de Backup que já vi. Seu  desenvolvedor estará na LatinoWare, evento que aconselho a todos, pois é disparado o evento mais nerd de Sw Livre do país, contará com cerca de 5000 convidados, 400 palestras e 250 oficinas. Ocorrerá de 15 a 17 de outubro de 2014 - Foz do Iguaçu | PR | Brasil.

IMPERDÍVEL!!!!!

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 10 a 14/11
São Paulo 4Linux 24 a 28/11
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 15 de setembro de 2014 11:20, address@hidden [shell-script] <address@hidden> escreveu:
 

Luiz,


Não sei bem o que está tentando fazer, mas se for um script pré-backup que nem utilizo no Bacula - ferramenta de backup em software livre, as barras são normais / (padrão Unix), ainda que esteja submetendo um comando para Windows.

Abraços,

Heitor




reply via email to

[Prev in Thread] Current Thread [Next in Thread]