Erro: ambiguous redirect [RESOLVIDO]

1. Erro: ambiguous redirect [RESOLVIDO]

Rogério Tonini
rtonini

(usa Debian)

Enviado em 03/08/2011 - 21:14h

Olá comunidade, estou tentando implantar um script de backup no servidor.
As regra:
1-) Sempre ter 3 jogos de backup.
2-) O script SEMPRE copiará todos os arquivos (não são muitos).
3-) Se quiser executar o script várias vezes no dia, SEMPRE manter os últimos 3 jogos de backup.
4-) Ao criar um novo jogo de backup, o conteúdo da origem ficará armazenado em um dir. chamado "Bkp_ddmmaa_hhmmss".
5-) Ao executar o script pela 4 vez, leio um arquivo de controle onde armazeno a relação dos nome dos jogos de backup.
A rotina deverá pegar a primeira linha deste arquivo e apagá-la, além de remover o dir. e o arquivo de log com o mesmo nome.

Ao executar a linha 57, recebo a seguinte mensagem: $A_TEMP: ambiguous redirect, já tentei usar o SED e recebo o mesmo erro,
já tentei várias soluções que encontrei, como por exemplo colocar as variavéis entre chaves , sem resultado.
Segue o código completo assim que terminar disponibilizarei para a comunidade.

Peço a ajuda de vcs.

Obrigado e abraços.


#!/bin/bash -x
#
DISP="/home/backup"
D_BKP="Bkp_$(date +%d%m%y_%H%M%S)"
D_LOG="$DISP/Log"
A_LOG="$D_BKP.log"
A_CNT_BKP="Contr-Bkp.txt"
A_TEMP= "Contr-Bkp.tmp"
QTD_BKP=$(cat $D_LOG/$A_CNT_BKP | wc -l)
D_COPIA="/etc/network"
#
# Verifica se o dispositivo para backup esta plugado
#
clear
cd $DISP 2> /dev/null ||
{
echo Dispositivo externo não esta conectado
echo Favor conectar e executar o programa novamente !
exit 1
}
#
# Verificar se o diretorio de LOGS existe
#
cd $D_LOG 2> /dev/null ||
{
mkdir $D_LOG
}
#
# Verifica a existencia do DIR de backup
#
cd $DISP/$D_BKP 2> /dev/null ||
{
mkdir $DISP/$D_BKP
}
#
# Verifica se o Arquivo de controle existe e
# se o usuário tem permissão de gravar no arquivo
#
if [ ! -f $D_LOG/$A_CNT_BKP ] ; then
touch $D_LOG/$A_CNT_BKP
fi
if [ ! -w $D_LOG/$A_CNT_BKP ] ; then
echo Voce não tem permissão de escrita no arquivo: $A_CNT_BKP
exit 1
fi
#
# Efetua a copia, apaga o jogo de mais antigo e grava
# o nome do jogo de backup no arquivo de controle
#
cp -vR $D_COPIA $DISP/$D_BKP > $D_LOG/$A_LOG
#
if test $QTD_BKP -eq 3 ; then
A_DEL=$(head --line=-2 $D_LOG/$A_CNT_BKP)
cat $A_CNT_BKP | grep -v "$A_DEL" > $A_TEMP ##### (ESTA LINHA QUE ESTA APRESENTANDO ERRO) #####
rm -rf $DISP/$A_DEL
rm -rf $D_LOG/$A_DEL.log
fi
#
echo $D_BKP: >> $D_LOG/$A_CNT_BKP
#
exit 0


  


2. Re: Erro: ambiguous redirect [RESOLVIDO]

Rogério Tonini
rtonini

(usa Debian)

Enviado em 04/08/2011 - 10:53h

Já consegui resolver o problema de uma maneira simples. segue:

cat $A_CNT_BKP | grep -v "$A_DEL" > temp$$
mv -f temp$$ $A_CNT_BKP

Assim que terminar todo o processo, liberarei o código.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts