[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Final de arquivo linux
From: |
Leogildo |
Subject: |
Re: Final de arquivo linux |
Date: |
Thu, 29 Sep 2005 19:08:44 -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), escrevi alguns exemplos que
podem ser aplicados na resolução do seu problema.
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
........unzip -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 tem 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,