The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
tftp troubleshooting Bobby76 UNIX para Dummies Perguntas & Respostas 0 02-29-2008 09:44
a leitura a partir de um arquivo e passar como variáveis e ignorar # no arquivo Konark Programação Shell Script e 4 11-08-2007 03:55
Ler um arquivo e escrever o nome do arquivo para um arquivo param. thebeginer UNIX & avançada para usuários experientes 1 10-05-2007 05:38
Ler ficheiros de nomes a partir de um arquivo e executar o arquivo de shell script parente anushilrai Programação Shell Script e 4 03-10-2006 05:25
Leitura conteúdos específicos a partir de um ficheiro e anexando-a para um outro arquivo dnicky Programação Shell Script e 5 10-04-2005 06:45

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-03-2006
Indalécio Indalecio is offline
Usuário
  
 

Join Date: Sep 2006
Localização: Suécia
Lugares: 59
Solução de problemas: arquivo leitura choque?

Oi todos
Estou tentando entender completamente um problema que tive ontem e estava apenas esperando que você me dê a sua opinião sobre isso. Penso que fixa o problema, mas eu ainda sinto ignorantes acerca de algumas partes do comportamento eu pudesse experiência no seguinte cenário. Aqui era a situação (antigo código simplificado versão):

Código:
for FILE in $INPUT_DIR ; do
   grep -q $FILE $PROCESSED 2>&1
   if [ $? != 0 ] ; then
      echo $FILE >> $PROCESSED
   else
      continue
   fi
   SOURCE=`grep ^S $FILE | wc -l | awk '{print $1}'`
   END_RCD=`grep ^E $FILE | wc -l | awk '{print $1}'`
   if [ $SOURCE -ne $END_RCD ] ; then
      echo "Error in $FILE: "$SOURCE" source keys detected, but "$END_RCD" end keys detected.
   fi
done
O conteúdo da INPUT_DIR continham uma grande quantidade de arquivos, e ele relatou o erro acima, em um deles (FONTE \u003d 1, END_RCD \u003d 0). No entanto, o arquivo foi ok, tanto quanto eu podia ver. Eu rapidamente assegurada minha comandos eram correctas e mesmo re-correu o script em todo o arquivo para obter uma lista final ok como uma saída, pelo que esta parecia estranho à primeira vista.

Depois de algum tempo de investigação que finalmente descobriu que eu tinha um monte de n processos em execução em segundo plano chamadora que trecho de código. Apesar de isso eu inicialmente suposto este script só seria correr uma vez ao mesmo tempo, de modo que os arquivos transformados a partir do meu processo (n) a cair em INPUT_DIR seria PROCESSED actualização do ficheiro para que não se apanhada pelas próximas chamadas.

Infelizmente, a minha teoria, a verdade é que o script tem chamado várias vezes ao mesmo tempo (a partir de diferentes sessões), o processamento em paralelo, isto com um ficheiro que não foi PROCESSED única (você começará a ver o que se pode olhar como aqui ). Portanto, para resumir, o script acima relatado um erro quando em execução no processo (n) para um arquivo criado pelo processo (n-1).

Agora, a situação acima descrita deve ser ainda ok, enquanto um arquivo é aberto, uma vez por hora, é só que este arquivo fica marcada pelo processo de errado, mas o resultado permanece o mesmo. Então, o que penso é que o dossier sobre o qual relatou que o erro foi inaugurado em duas sessões, ao mesmo tempo.

Eu tenha removido o arquivo PROCESSED e agora executar este script uma vez depois de todos os processos estejam concluídos, pelo que não receber qualquer problema mais. A única coisa que eu ainda não entendo é por que END_RCD deu 0. Uma vez que duas sessões têm diferentes variáveis tampões, não vejo como um potencial confronto num ficheiro iria produzir um erro deste tipo. Se alguém aqui tem uma credibilidade explicação, eu ficaria muito feliz de saber sobre isso.

Muito obrigado,
Yann
 

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:46.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0