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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RES: [shell-script] Extensao


From: Leogildo da Silva
Subject: Re: RES: [shell-script] Extensao
Date: Tue, 29 Jun 2004 15:05:12 -0000
User-agent: eGroups-EW/0.82

Oi,

Concordo com o Rodolfo, a implementacao de HEADER e TRAILLER "padrao"
no conteudo dos arquivos, possibilita a verificacao da integridade dos
mesmos.

Uma forma "nao muito segura" de resolver esta questao, seria mover o
arquivo, desde que o seu volume em bytes permaneca identico em uma
fracao "x" de tempo.

Vejamos, recebo arquivos de diversos servidores, e diversos S.O's, 
via link discado e/ou dedicado, utilizando Connect:Direct, RVS,
ZMODEM, FTP, etc, ...

Se um evento do tipo FILE-CLOSE, ocorre por uma falha na comunicacao
(ex.: uma queda de link), e voce nao utiliza padroes de HEADER e
TRAILLER, voce moverah o arquivo imcompleto.


Bye,

Leogildo da Silva
Analista de Producao
Grupo CSU


--- Em address@hidden, Julio Cezar Neves - DATAPREVRJ
<julio.neves@p...> escreveu
> Fala Andrew e Rodolfo,
> Duas maneiras bem diferentes do padrão:
> 
> 1 - O sinal 17 é gerado após o termino de um processo filho, experimente
> fazer no prompt:
> Prompt> trap "echo o comando terminou" 17
> Prompt> sleep 3&
> 
> Após 3 segundo (antes do aviso de fim em background) vc receberá a
msg "o
> comando terminou".
> 
> Assim sendo, monitore o sinal 17 antes do mv e desative-o logo após.
> 
> 2 - Qdo vc dispará um processo em background, a variável $! contém o
número
> deste processo, assim sendo, vc pode fazer o mv em background e
monitorar o
> fim do processo com um while. Assim:
> 
> while kill -0 $!
> do
>     sleep 1
> done
> 
> O bacana deste último é que vc pode botar um indicador de processo,
botando
> um reloginho no lugar do sleep.
> 
> Se alguém quiser, me peça, mas *a t e n ç ã o* só mandarei para quem
pedir
> em pvt.
> 
> [ ]s a todos,
> Julio Cezar Neves
> - Programa de Software Livre -
> Tel:+55 21 2528-7070 / +55 21 8112-9988
> Fax: +55 21 2528-7646
> mailto:julio.neves@p...
> 
> 
> | -----Mensagem original-----
> | De: Rodolfo Villanova
> | [mailto:rodolfo.villanova@t...]
> | Enviada em: segunda-feira, 28 de junho de 2004 18:30
> | Para: address@hidden
> | Assunto: RES: [shell-script] Extensao
> | 
> | 
> | Fala, Andrew!
> | 
> | Por acaso, há poucos meses atrás, enfrentei um problema bem 
> | parecido, sendo
> | que o conteúdo do arquivo tratado possui um cabeçalho e um 
> | rodapé que, se
> | não estiver OK, o arquivo é movido para um diretório de 
> | anomalias e emitido
> | um aviso por e-mail.
> | 
> | Às vezes coincide de, na hora de movê-lo para outro diretório 
> | (por script
> | disparado pela cron ou que esteja aguardando em espera), o 
> | arquivo recebido
> | recém está sendo carregado. Pra prevenir esse caso, é util utilizar o
> | comando fuser <arquivo> (/usr/sbin/fuser) para verificar se 
> | está associado
> | ao arquivo um processo ativo.
> | 
> | Mas aqui reside um problema.
> | 
> | Pelo menos até onde pude comprovar através de testes entre servidores
> | distintos, o "fuser" não detecta a presença do serviço FTP 
> | sobre um arquivo,
> | ou seja, mesmo estando aberta a conexão desse serviço no 
> | servidor que recebe
> | o arquivo, o número do PID não aparece ao lado do arquivo ao 
> | acionar o fuser
> | sobre ele (hum, lembrei agora que não estudei todos os parâmetros do
> | "fuser"!). Daí a importância de existir um cabeçalho na 
> | primeira linha e um
> | rodapé na última linha que identifique o início e o fim do arquivo, e
> | enquanto ele não se completa, deixe o processo que realiza a  
> | movimentação
> | alguns poucos ciclos tirando um pequeno cochilo - sleep (o 
> | cochilo quem deve
> | tirar é o processo, não o operador!!! ;)).
> | 
> | O que descrevi acima verifiquei em ambientes Unix Solaris e 
> | True64, mas é
> | possível que o mesmo ocorra em ambientes Linux em seus 
> | diversos "sabores".
> | Faça teus próprios testes. Dê uma boa olhada nos parâmetros do comando
> | fuser.
> | 
> | É possível encontrar outras soluções para atingir esse objetivo.
> | A que apresentei acima foi a primeira alternativa que encontrei e que
> | resolveu aquele problema específico, e ele continua rodando 
> | sem surpresas
> | até hoje.
> | 
> | Abraço e boa sorte.
> | --------------------------
> | Rodolfo D. Gross Villanova
> | 
> | > -----Mensagem original-----
> | > De: Andrew Amorim [mailto:andrew.amorim@a...]
> | > Enviada em: segunda-feira, 28 de junho de 2004 17:47
> | > Para: address@hidden
> | > Assunto: RES: [shell-script] Extensao
> | >
> | > Não era bem isso amigo, deixa eu explicar...
> | > Quando um arquivo cai dentro do diretorio ele move para outro,
> | > isso de um em
> | > um segundo;
> | > Mas quando cai um arquivo muito grande, ele está movendo pela
> | > metade, pois o
> | > tempo de 1 segundo não é o suficiente para meu banco acabar de
> | > gerar todo o
> | > arquivo.
> | > Então queria ter uma excessão, que quando o nome do arquivo tiver
> | > "exp" por
> | > exmplo, ele demora mais tempo antes de mover..entendeu?
> | > Segue o script q estou usando...
> | >
> | > ### Move todos os arquivos que são gerados para outro, de 1 
> | em 1 seg.
> | > #!/bin/bash
> | > DIR_ORIGEM=rem/
> | > DIR_DESTINO=transf/
> | > cd $DIR_ORIGEM
> | > if [
> | > while true; do
> | >   if [ `ls | wc -l` -gt 0 ]; then
> | >   mv * ../$DIR_DESTINO
> | >   fi
> | >   sleep 1
> | > done
> | >
> | > Muito Obrigado,
> | > Andrew
> | >
> | > -----Mensagem original-----
> | > De: Enderson Maia [mailto:endersontadeu@y...]
> | > Enviada em: segunda-feira, 28 de junho de 2004 15:45
> | > Para: address@hidden
> | > Assunto: Re: [shell-script] Extensao
> | >
> | >
> | > -----BEGIN PGP SIGNED MESSAGE-----
> | > Hash: SHA1
> | >
> | > Andrew Amorim wrote:
> | >
> | > | Pessoal, boa tarde. Como faço para pegar a extensão de um arquivo?
> | > | Tenho um script que pega tudo o que tem dentro do diretorio e move
> | > | para outro de 1 em 1 segundo. Mas que q se  existir esta extensao,
> | > | o script faz outra coisa.
> | > |
> | > | Poderiam me ajudar?
> | > |
> | > | Obrigado.
> | > |
> | > Eu uso isso:
> | > *.[Tt][Xx][Tt]
> | >
> | > ele pegaria tudo que é txt!
> | >
> | > Sem mais,
> | >
> | > - --
> | > Enderson Maia
> | >
> | > ICQ: 8817986
> | > Linux User: 286130
> | > GPG: http://tinyurl.com/2ca3a
> | 
> | 
> | 
> | 
> | 
> | ---------------------------------------------------------------------
> | Esta lista não admite a abordagem de outras liguagens de 
> | programação, como perl, C etc. Quem insistir em não seguir 
> | esta regra será moderado sem prévio aviso.
> | ---------------------------------------------------------------------
> | Sair da lista: address@hidden
> | ---------------------------------------------------------------------
> | Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>  
> Links do Yahoo! Grupos


reply via email to

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