The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
"sed" for at kontrollere filstørrelse & echo "" destination fil jockey007 Shell Programmering og Scripting 7 04-28-2009 03:08 AM
Hvordan kan jeg erstatte "(", "\" "+" i en fil mail2sant Shell Programmering og Scripting 3 04-23-2008 12:10 AM
Udvikling Releases: Linux Mint 4.0 Beta "Fluxbox", 4.0 Alpha "Debian" iBot UNIX og Linux RSS Nyheder 0 01-04-2008 03:00 PM
Forklar line "mn_code \u003d` env | grep ".. mn" | awk-F "\u003d" '(print $ 2)' `" Lokesha UNIX for dummyer Spørgsmål & svar 4 12-20-2007 01:52 AM
Nr. utpmx indrejse: du skal exec "login" fra laveste niveau "Shell" peterpan UNIX for dummyer Spørgsmål & svar 0 01-18-2006 04:15 AM

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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 04-25-2007
Percy Percy is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Stillinger: 14
"VI"-ing en konstant opdateret fil

Hej,

En lidt af et dumt spørgsmål her. Undskyld folkens.

Antag at jeg har denne fil, som bliver opdateret med uregelmæssige mellemrum (et par sekunder, et par minutter, hvem ved) ved en baggrund proces.

I 'VI»Denne fil med den hensigt at redigere i den, så det åbner en midlertidig kopi som de sædvanlige / tmp/720cwhatever

Lad os nu antage, mens jeg har denne fil åbnes, dens opdateres flere gange i baggrunden proces.

Jeg laver mine ændringer, save-quit.

Hvad sker der med de opdateringer, der blev foretaget af baggrunden proces i løbet af den tid, jeg havde filen åbnet?


Hvordan kan jeg afhjælpe dette?
(desværre stoppe baggrunden processen er ikke en mulighed).


Filen er forholdsvis stor også (ca. 40Mb), så det tager VI et par sekunder for at indlæse det op, gemme det osv. ....


Unix er ksh.
OS er SunOS.

Hope you guys kan hjælpe! - På forhånd tak!
  #2 (permalink)  
Old 04-25-2007
sysgate's Avatar
sysgate sysgate is offline Forum Advisor  
Unix-baserede
  
 

Join Date: Nov 2006
Beliggenhed: Bulgarien
Stillinger: 1323
Opdateringerne fra baggrunden proces er ikke tabt, spørgsmålet er, hvad der sker, når du er ved at gøre "save & Quit" - du vil blive bedt med besked om, at den oprindelige fil er ændret: Vil du gemme alligevel?
Den anden ting er, når en anden person forsøger at VI den samme fil åbnes ved dig - han vil få en besked:

Citat:
E325: ATTENTION
Fundet en swap-fil ved navn ". Temp.txt.swp"
ejes af: sysgate af: Thu Mar 25 17:29:23 2007
filnavn: ~ sysgate / temp.txt
ændret: nej
brugernavn: sysgate værtsnavn: $ myhost
Process ID: 30240 (stadig kører)
Selv om åbning af fil "temp.txt"
dateret: Thu Mar 25 17:27:07 2007

(1) Et andet program kan du redigerer den samme fil.
Hvis dette er tilfældet, skal passe på ikke at ende op med to
forskellige forekomster af den samme fil, når du foretager ændringer.
Afslut, eller fortsætte med forsigtighed.

(2) En redigere session for denne fil ned.
Hvis dette er tilfældet, skal du bruge ": recover" eller "vim-r temp.txt"
at inddrive de ændringer (se ": Hjælp nyttiggørelse").
Hvis du gjorde det allerede, slette swap-fil ". Temp.txt.swp"
at undgå denne meddelelse.

Swap-fil ". Temp.txt.swp" findes allerede!
[O] pen Read-Only, (E) Dit alligevel, (R) Ecover, (Q) uit, (A) bort:
men jeg formoder, du mener store logfiler, så den løsning vil variere afhængigt af, hvad der præcist du ønsker at gøre.
  #3 (permalink)  
Old 04-25-2007
Shell_Life's Avatar
Shell_Life Shell_Life is offline
Registreret Bruger
  
 

Join Date: Mar 2007
Beliggenhed: Bahia, Brasilien
Posts: 695
Percy, som sysgate bemærket, vil din løsning i høj grad afhænge af, hvad der præcist
du vil opdatere i filen.
Er det virkelig nødvendigt at "VI"Filen?
Kan en skal være skrevet for at gøre de opdateringer, du ønsker?
  #4 (permalink)  
Old 04-25-2007
Percy Percy is offline
Registreret Bruger
  
 

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

Lidt mere info:

Hvad jeg ønsker, er dette:

Dette er en stor fil, fuld af filnavne og en hash-kode for hver filnavn.
hver linje i filen er
filnavn, dato, hash-kode
filnavn, dato, hash-kode
...

Anyway, så en fil kommer i en server, får en hash-kode, som derefter sættes ind i denne store logfil af minen, og derefter filen er behandlet.

Skulle filen blive sendt ind igen til serveren, sin hash-kode kontrolleres, og hvis den eksisterer (dvs. har min proces behandlet med det allerede) det drejer sig om filen korrekt.

Jeg gået galt, når jeg behovet for at oparbejde den samme fil igen - så jeg har brug for at redigere store logfilen og fjerne posten (hele linjen - navn, dato, hash-kode), således at jeg kan brødføde det igennem igen.


Skriv en kort køretur til at håndtere dette? - Ikke sikker - det en af dem, hvor det sker ofte, men ikke ofte nok til at berettige en sh .... men noget, jeg tror, jeg kunne se ind.


En anden ting:

Antag at to personer sudos til en bruger (den samme bruger) først, og derefter redigeret filen - du får ikke besked om filen forandring, når du gemmer / quit ret? - I det mindste det er, hvad det ser ud til at ske i løbet af her i Bizarro verden ...
  #5 (permalink)  
Old 04-25-2007
Shell_Life's Avatar
Shell_Life Shell_Life is offline
Registreret Bruger
  
 

Join Date: Mar 2007
Beliggenhed: Bahia, Brasilien
Posts: 695
Percy,
Her er en mulig løsning:
1) Omdøb "work_file" til en "tmp_file" og straks oprette en
nye "work_file", således at nye rekorder fortsat kan føjes til det.

Code:
mv  work_file  tmp_file
touch  work_file

2) "VI"De" tmp_file "og foretage alle ændringer, du ønsker.

2.a) Når du er færdig med dine ændringer på "tmp_file",
ikke holde op endnu.

2.b) Gå til slutningen af "tmp_file" og i kommandolinjen type:

Code:
:r work_file

Dette vil læse "work_file" helt og placere den efter den sidste linje
af "tmp_file".

2.c) Skriv og forlade "tmp_file".
Som du siger, at filen er meget stor, hvis du prøver at gemme arbejdsområdet
som "work_file", kan det tage lang tid og bruger en masse hukommelse
og diskplads.

3) Umiddelbart omdøbe "tmp_file" tilbage til "work_file".

Code:
mv  tmp_file  work_file

Se, om det kunne arbejde for dig.
  #6 (permalink)  
Old 04-26-2007
Percy Percy is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Stillinger: 14
Tak for dette.

Der er stadig for lille potentiale mangler tilføjelser til logfil mellem trin 2c og 3 - og det skyldes hovedsagelig, hvor hurtigt jeg kan skrive "MV file fil2" - i panik, jeg sandsynligvis bruge mere tid på at trykke på Backspace end faktisk at skrive kommandoer korrekt.

Dens helt sikkert en bedre blikfang indgange end den løsning, jeg havde i tankerne - så tak meget!
Closed Thread

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
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 06:45 AM.


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