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

[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,



reply via email to

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