The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
google unix.com



UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!!

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
"sed" om te controleren of de grootte van het bestand & echo "" naar bestemming bestand jockey007 Programmeren en Shell Scripting 7 04-28-2009 02:08
Hoe kan ik vervangen "(", "\" "+" in een bestand mail2sant Programmeren en Shell Scripting 3 04-22-2008 11:10 PM
Ontwikkeling Releases: Linux Mint 4.0 Beta "fluxbox", 4.0 Alpha "Debian" iBot UNIX en Linux RSS Nieuws 0 01-04-2008 03:00 PM
Leg de lijn "mn_code \u003d" env | grep ".. mn" | awk-F "\u003d" '(print $ 2)' `" Lokesha UNIX voor Dummies Questions & Answers 4 12-20-2007 01:52
Nr. utpmx item: u moet exec "inloggen" uit laagste niveau 'shell' peterpan UNIX voor Dummies Questions & Answers 0 01-18-2006 04:15

Closed Thread
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 04-25-2007
Percy Percy is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2007
Posts: 14
"VI"-ing een voortdurend bijgewerkte bestand

Hoi,

Een beetje hier van een domme vraag. Sorry folks.

Stel ik heb dit bestand dat wordt bijgewerkt met onregelmatige tussenpozen (een paar seconden, een paar minuten, wie weet) door een achtergrond proces.

Ikvi'Dit bestand met de bedoeling te bewerken, dus het opent een tijdelijke kopie als de gebruikelijke / tmp/720cwhatever

Stel nu dat, terwijl ik dit bestand geopend, zijn bijgewerkt meerdere malen door de achtergrond proces.

Ik maak mijn wijzigingen, save-quit.

Wat gebeurt er met de updates die werden door de achtergrond proces tijdens de tijd had ik het bestand geopend?


Hoe kan ik dit te verzachten?
(helaas, het stoppen van de achtergrond proces is geen optie).


Het bestand is vrij groot ook (ongeveer 40MB) dus het duurt vi een paar seconden te laden het op, om het te redden, enz. ....


Unix is ksh.
OS is SunOS.

Hoop dat jullie kunnen helpen! - Met dank bij voorbaat!
  #2 (permalink)  
Old 04-25-2007
sysgate's Avatar
sysgate sysgate is offline Forum Advisor  
Unix-gebaseerd
  
 

Join Date: november 2006
Locatie: Bulgarije
Berichten: 1.322
De updates die achtergrond proces niet verloren gaan, de vraag is wat er gebeurt als u wilt doen "Save & Quit" - u wordt gevraagd op de boodschap dat het originele bestand veranderd is: wil je toch opslaan?
Het andere ding is wanneer iemand anders probeert te vi hetzelfde bestand geopend door u - hij krijgt een bericht:

Citaat:
E325: AANDACHT
Gevonden een swap-bestand met de naam ". Temp.txt.swp"
owned by: sysgate dd: Fri Apr 25 17:29:23 2007
bestandsnaam: ~ sysgate / temp.txt
modified: geen
gebruikersnaam: sysgate hostnaam: $ myhost.foo
proces-ID: 30240 (nog lopend)
Hoewel de opening file "temp.txt"
dd: Thu Apr 25 17:27:07 2007

(1) Een ander programma kunnen bewerken van hetzelfde bestand.
Als dit het geval is, wees niet te eindigen met twee
verschillende exemplaren van hetzelfde bestand wanneer u wijzigingen aanbrengt.
Stoppen of doorgaan met de nodige voorzichtigheid.

(2) een edit sessie voor dit bestand neergestort.
Als dit het geval is, gebruik ": herstellen" of "vim-r temp.txt"
voor het terugvorderen van de veranderingen (zie ": help herstel").
Als je deed dit al, verwijdert u het wisselbestand ". Temp.txt.swp"
om te voorkomen dat dit bericht.

Swap file ". Temp.txt.swp 'bestaat al!
[O] pen Read-Only, (E) dit toch, (R) Ecover, (Q) uit, (A) bort:
maar, denk ik bedoel je grote log files, dus de oplossing zal variëren afhankelijk van wat u precies wilt doen.
  #3 (permalink)  
Old 04-25-2007
Shell_Life's Avatar
Shell_Life Shell_Life is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Locatie: Bahia, Brazilië
Posts: 695
Percy, zoals sysgate opgemerkt, zal uw oplossing sterk afhangen van wat precies
u wilt bijwerken in het bestand.
Is het echt nodig om "vi"Het dossier?
Kan een shell worden geschreven om te doen de updates die je wilt?
  #4 (permalink)  
Old 04-25-2007
Percy Percy is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2007
Posts: 14
OK cheers guys!

Een beetje meer info:

Wat ik precies wil doen is dit:

Dit is een groot bestand, vol van bestandsnamen en een hashcode voor elke bestandsnaam.
elke regel in het bestand is
bestandsnaam, datum, hashcode
bestandsnaam, datum, hashcode
...

Hoe dan ook, dus een bestand komt in een server, krijgt een hashcode die vervolgens wordt gebracht in dit grote log bestand van mij, en vervolgens het bestand is verwerkt.

Indien het dossier opnieuw worden verstuurd naar de server, de hashcode wordt gecontroleerd en als het bestaat (dat wil zeggen, is mijn proces behandeld met het al) het gaat over het juiste bestand.

Ik kom unstuck toen ik nodig om hetzelfde bestand opnieuw opwerken - dus ik nodig om de grote log bestand te bewerken en de vermelding te verwijderen (de hele lijn - naam, datum, hashcode), zodat ik kan voeden het door opnieuw.


Schrijf een sh om te gaan met dit? - Niet zeker - zijn een van de landen waar het gebeurt vaak, maar niet vaak genoeg om een sch .... rechtvaardigen, maar zijn iets wat ik denk dat ik kon kijken.


Een ander ding:

Stel dat twee mensen sudos aan een gebruiker (dezelfde gebruiker), en dan de bewerkingen bestand - je krijgt niet de boodschap over het bestand veranderen bij het opslaan / quit right? - Tenminste dat is wat het lijkt te gebeuren hier in bizarro wereld ...
  #5 (permalink)  
Old 04-25-2007
Shell_Life's Avatar
Shell_Life Shell_Life is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Locatie: Bahia, Brazilië
Posts: 695
Percy
Hier is een mogelijke oplossing:
1) Wijzig de naam "work_file" naar een "tmp_file" en maken dan een
nieuwe "work_file" zodat nieuwe records kan blijven worden toegevoegd.
Code:
mv  work_file  tmp_file
touch  work_file
2) "vi"De" tmp_file "en stelt alle wijzigingen die u wilt.

2.a) Nadat je klaar bent met uw wijzigingen op de "tmp_file",
doen stoppen nog niet.

2.b) Ga naar het einde van de "tmp_file" en in de opdrachtregel type:
Code:
:r work_file
Dit leest de "work_file" geheel en plaats het na de laatste regel
van "tmp_file".

2.c) Schrijf en sluit de "tmp_file".
Zoals u zeggen dat het bestand is zeer groot, als u probeert om het werkgebied te slaan
als "work_file", kan het lang duren en gebruiken veel geheugen
en schijfruimte.

3) Onmiddellijk naam "tmp_file" terug naar "work_file".
Code:
mv  tmp_file  work_file
Zie als dit zou kunnen werken voor je.
  #6 (permalink)  
Old 04-26-2007
Percy Percy is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2007
Posts: 14
Dank u voor deze.

Er is nog steeds de geringe mogelijkheden van ontbrekende toevoegingen aan het logbestand tussen stappen 2c en 3 - en zijn voornamelijk te wijten aan hoe snel ik kan het type "mv file file2" - in paniek, ik waarschijnlijk meer tijd raken de backspace dan werkelijk te typen opdrachten correct.

Zijn zeker een betere catcher van de inzendingen is dan de oplossing die ik in gedachten had - zo thanks very much!
Closed Thread

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 06:44 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