![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
||||
|
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 |
| Display Modes | Beoordeel deze draad |
|
|