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.
#!/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