The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
tftp fejlfinding Bobby76 UNIX for dummyer Spørgsmål & svar 0 02-29-2008 09:44 AM
læse fra en fil og videregive som variabler og ignorere # i filen konark Shell Programmering og Scripting 4 11-08-2007 03:55 AM
Læsning af en fil og skrive filnavnet til et param fil. thebeginer UNIX for Advanced & Ekspertsøgning Brugere 1 10-05-2007 05:38 PM
Læsning filnavne fra en fil og fuldbyrdelsesstaten den relative fil fra shell script anushilrai Shell Programmering og Scripting 4 03-10-2006 05:25 AM
Læsning specifikke indhold fra en fil og tilføjer den til en anden fil dnicky Shell Programmering og Scripting 5 10-04-2005 06:45 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 10-03-2006
Indalecio Indalecio is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Beliggenhed: Sverige
Stillinger: 59
Fejlfinding: file læsning sammenstød?

Hej alle
Jeg forsøger at fuldt ud forstå et spørgsmål, jeg havde i går og var bare håber du gerne give mig din mening om det. Jeg tror, jeg løst problemet, men jeg føler stadig uvidende om nogle dele af den adfærd, jeg kunne opleve i følgende scenario. Her var situationen (gamle forenklet kode version):


Code:
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

Indholdet af INPUT_DIR indeholdt en masse filer, og det rapporteres ovenstående fejl på en af dem (SOURCE \u003d 1, END_RCD \u003d 0). Men filen var ok så vidt jeg kunne se. Jeg hurtigt sikres mine kommandoer var korrekte, og selv igen kørte scriptet på hele filliste for at få en endelig ok som et output, så det så mærkeligt ved første øjekast.

Efter nogen tid på undersøgelsen jeg endelig fundet, at jeg havde en masse n processer, der kører i baggrunden, kræver, at bit kode. På trods af dette jeg oprindeligt meningen dette script ville kun kører en gang på samme tid, så de filer forarbejdede min processen (n) der falder ind under INPUT_DIR ville være at ajourføre FORARBEJDEDE fil, så de ikke bliver opfanget af det næste opkald.

Desværre for min teori, sandheden var, at manuskriptet fik kaldte flere gange på samme tid (fra forskellige sessioner), behandling parallelt, dette med en FORARBEJDEDE fil, der ikke var entydig (du begynde at se, hvad det kan se ud her ). Så for at opsummere, ovenstående script rapporteret en fejl, når du kører på processen (n) i en fil, som oprettes af processen (n-1).

Nu ovenstående situation bør stadig være ok, så længe en fil åbnes, når et tidspunkt, det er bare at denne fil bliver kontrolleret af den forkerte proces, men resultatet er det samme. Så hvad jeg mener er, at den fil, som den rapporterede fejlen blev åbnet i to sessioner på samme tid.

Jeg har fjernet FORARBEJDEDE fil og nu køre dette script gang, efter at alle processer er afsluttet, så jeg får ikke noget problem længere. Det eneste, jeg stadig ikke forstår, er hvorfor END_RCD gav 0. Da to sessioner har forskellige variable buffere, jeg kan ikke se, hvordan en potentiel sammenstød på en fil vil give sådan en fejl. Hvis nogen her har en troværdig forklaring, ville jeg være meget glad for at vide om det.

Mange tak,
Yann
 

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er PÃ¥
Smilies er PÃ¥
[IMG] koden er PÃ¥
HTML-koden er Slukket
Trackbacks er PÃ¥
Pingbacks er PÃ¥
Refbacks er PÃ¥




Alle tidspunkter er GMT -4. Den tid er nu 03:44 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0