The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
tftp probleemoplossing Bobby76 UNIX voor Dummies Questions & Answers 0 02-29-2008 09:44
lezen van een bestand en pas als variabelen en negeren # in het dossier konark Programmeren en Shell Scripting 4 11-08-2007 03:55
Het lezen van een bestand en het schrijven van de naam van het bestand naar een param bestand. thebeginer UNIX for Advanced & Expert Gebruikers 1 10-05-2007 05:38 PM
Reading bestandsnamen uit een bestand en het uitvoeren van de relatieve bestand van de shell-script anushilrai Programmeren en Shell Scripting 4 03-10-2006 05:25
Reading specifieke inhoud van een bestand en voeg het naar een ander bestand dnicky Programmeren en Shell Scripting 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-03-2006
Indalecio Indalecio is offline
Geregistreerde gebruiker
  
 

Join Date: Sep 2006
Locatie: Zweden
Posts: 59
Problemen oplossen: bestand lezing botsen?

Hi all
Ik probeer om volledig te begrijpen een kwestie die ik gisteren en was slechts hopen u mij uw mening over. Ik denk dat ik het probleem heeft verholpen, maar ik voel me nog steeds onwetend over enkele onderdelen van het gedrag kon ik ervaring in het volgende scenario. Hier was de situatie (oude code vereenvoudigde versie):


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

De inhoud van de INPUT_DIR bevatte een groot aantal bestanden, en het verslag van de bovenstaande fout op een van hen (BRON \u003d 1, END_RCD \u003d 0). Maar het bestand is ok voor zover ik kon zien. Ik snel verzekerd mijn commando juist waren en zelfs opnieuw liep het script op de hele lijst met bestanden om een definitieve ok als output, dus dit leek op het eerste gezicht vreemd.

Na enige tijd van het onderzoek heb ik eindelijk gevonden die ik had een stel van n processen op de achtergrond roepen dat stukje code. Ondanks deze ik aanvankelijk veronderstelde dit script zou slechts eenmaal draait op dezelfde tijd, dus de bestanden die in de periode van mijn proces (n) die tot INPUT_DIR zou het bijwerken van de VERWERKTE bestand zodat ze niet opgepikt door de volgende gesprekken.

Helaas voor mijn theorie, de waarheid is dat het script kreeg de naam meerdere malen op hetzelfde moment (uit verschillende sessies), verwerking, parallel, dit met een VERWERKTE bestand dat is niet uniek (je beginnen om te zien wat het kan eruit hier ). Dus om het samen te vatten, is het bovenstaande script rapporteerde een fout bij het uitvoeren van het proces (n) voor een bestand dat wordt gemaakt door het proces (n-1).

Nu is de bovenstaande situatie nog steeds ok zo lang als een bestand wordt geopend zodra een moment, het is alleen dat dit bestand wordt gecontroleerd door de verkeerde, maar het resultaat blijft hetzelfde. Dus wat ik denk is dat het bestand op waarin zij melding van de fout werd geopend in twee sessies tegelijk.

Ik heb het verwijderd VERWERKTE bestand en nu dit script eenmaal na alle processen zijn afgerond, zodat ik er geen probleem meer. Het enige wat ik nog steeds niet begrijp is waarom END_RCD gaf 0. Sinds twee sessies hebben verschillende variabele buffers, ik zie niet in hoe een mogelijke botsing op een bestand zou een dergelijke fout. Als iemand hier heeft een geloofwaardige uitleg, ik zou heel graag weten.

Hartelijk dank,
Yann
 

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 01:15 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0