[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Final de arquivo linux
From: |
Leogildo da Silva |
Subject: |
Re: Final de arquivo linux |
Date: |
Thu, 29 Sep 2005 01:20:49 -0000 |
User-agent: |
eGroups-EW/0.82 |
Ae Carlos,
Existem várias soluções que podem ser aplicadas ao seu caso.
Soluções comerciais não são viáveis para pequenos projetos, devido ao
elevado custo.
Tomando como base o modêlo sugerido (executa uma ação caso exista
arquivos em um determinado diretório), vou citar algumas soluções
caseiras que proporcionam um pouco mais de segurança, e uma das opções
abaixo (ou uma combinação delas) pode lhe ser útil...
1) Para arquivos com TRAILLER padrão, considerando que nas duas
primeiras posições do último registro contenha o valor "99", você
poderia utilizar algo como:
#------------------------------------------------------------
while true
do
....if [ -f nome_do_arquivo ]
....then
........if [ $(tail -1 nome_do_arquivo | cut -c1-2) = "99" ]
........then
............mv nome_do_arquivo /novo_diretorio
............break
........fi
....fi
....sleep 10
done
#------------------------------------------------------------
2) Para arquivos compactados com "zip" ou similar, você poderia
utilizar algo como:
#------------------------------------------------------------
while true
do
....if [ -f nome_do_arquivo ]
....then
........zip -t nome_do_arquivo >/dev/null 2>&1
........if [ ${?} -eq 0 ]
........then
............mv nome_do_arquivo /novo_diretorio
............break
........fi
....fi
....sleep 10
done
#------------------------------------------------------------
2) Para arquivos genéricos, você poderia utilizar algo como:
#------------------------------------------------------------
while true
do
....if [ -f nome_do_arquivo ]
....then
........TBANT=`ls -l nome_do_arquivo | awk '{print $5}'`
........sleep 15
........TBATU=`ls -l nome_do_arquivo | awk '{print $5}'`
........while [ ${TBANT} != ${TBATU} ]
........do
............TBANT=${TBATU}
............sleep 15
............TBATU=`ls -l ${1} | awk '{print $5}'`
........done
........mv nome_do_arquivo /novo_diretorio
........break
....fi
....sleep 10
done
#------------------------------------------------------------
Obs.: no último exemplo, não tenho gomo garantir que o arquivo foi
gravado integralmente.
T+
--- Em address@hidden, "carloshessbr"
<carloshessbr@y...> escreveu
> Boa Tarde,
>
> Gostaria de saber se existe alguma maneira de descubrir se o arquivo
> já foi totalmente descaregado(finalizado) antes de efetuar algum
> comando nele tipo uma impressão, pois fiz um script que lê um
> diretório e quando cair algum arquivo nele ele automaticamente imprime
> e apaga o arquivo.
>
> Meu medo é que ele imprime o arquivo incompleto.
>
> Obrigado,