petterg Skrevet 3. januar 2005 Del Skrevet 3. januar 2005 Hvordan kan jeg flytte innholdet av en logfil til en annen fil, og fjerne de linjene som har blitt hentet ut, uten at noe går tap, og heller ikke blir dobbeltlagret? Problemer som dukker opp: Hvis man bruker mv for å gi loggfila nytt navn, kan man risikere å lage problemer for programmer som var i ferd med å skrive til fila i det den ble flyttet. Om man bruker cp og deretter rm (eller echo "" > logfil) vil det som har blitt skrevet til loggen mellom tidspunktet for kopi og tidspunktet for sletting. Om man bare bruker cp, uten rm får man dobbelt lagring. Hva er trikset? Lenke til kommentar
zyp Skrevet 3. januar 2005 Del Skrevet 3. januar 2005 I noen tilfeller virker det i alle fall slik at først flyttes den gamle loggfila, og så får programmet et signal som sier at det skal lukke den gamle filpekeren og åpne en ny. Lenke til kommentar
DidzisK Skrevet 3. januar 2005 Del Skrevet 3. januar 2005 Prøv å søke på Logfile Rotation. Jeg mener å huske at RedHat hadde skripter for det i standartoppsettet (allerede i versjon 6), sikkert mange andre distroer har det også. Problemer du nevner er bare en del av alle problemene som kan oppstå ved logfile rotation. Jeg fant dette i Google: http://sial.org/howto/logging/syslog-ng/ Lenke til kommentar
kyrsjo Skrevet 3. januar 2005 Del Skrevet 3. januar 2005 Hva med å sette maskinen i init 1 før du gjør det? Lenke til kommentar
petterg Skrevet 3. januar 2005 Forfatter Del Skrevet 3. januar 2005 Hva med å sette maskinen i init 1 før du gjør det? Det må gjøres mens alle programmer kjører uavbrutt. Lenke til kommentar
petterg Skrevet 3. januar 2005 Forfatter Del Skrevet 3. januar 2005 (endret) En mulighet som muligens kan fungere er å ta nåværene tidspunkt, trekke fra ett minutt og ignorere sekunder. Så kjører man 'sed', og lister ut alle linjer fra start av fila og ned til det gitte tidspunktet. Deretter kjøre en sed -i og slette de samme linjene. Litt usikker på hvordan sed -i oppfører seg mens det blir skrevet til filen den endrer på. Vil det som skrives til fila mens den jobber forsvinne? -------Edit: lagt til --- På linken DidzisK postet har de brukt en symlink som endres. Det er kanskje ikke så dum løsning? Hvis et program skriver til en fil linket i en symlink så vil det vel fortsette og skrive til den samme fila selv om symlinken endres? Og neste gang det skal skrives noe til fila vil den lese symlinken først, og dermed skrive til en annen fil. Stemmer dette, eller blir det samme problemet her som med cp-rm-metoden? Endret 3. januar 2005 av petterg Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå