/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Script låser /var/log/messages
Fra : Allan


Dato : 07-04-04 07:13

Hej NG,

Jeg er stødt på et (for mig) mærkeligt problem.
Det jeg vil er at klippe alle linier fra /var/log/messages ud, som der har
med iptables at gøre (dem der indeholder "iptables-log").

Min iptables ser således ud:
iptables -A INPUT -i ppp0 -j LOG --log-prefix "iptables-log "

script start>>>

Mit script der er sat til at køre i Cron hver time ser således ud:
#!/bin/bash
# Find linier der indeholder iptables-log og kopier over i iptables-logfil
sed -n '/iptables-log/p' /var/log/messages >> /var/log/iptables

# Slet linier der indeholder iptables-log, og overskriv original
messages-fil
sed '/iptables-log/d' /var/log/messages > /tmp/messages-uden-iptables
mv -f /tmp/messages-uden-iptables /var/log/messages

# For at efterlade messages med samme rettigheder som før
chmod 600 /var/log/messages

<<< script slut

/var/log/messages ser således ud:
-rw------- 1 root root 174017 Apr 7 08:00 /var/log/messages

Alt virker fint første gang efter at PC'en har været genstartet.
Men efter at scriptet er blevet kaldt, så bliver der ikke længere skrevet
noget som helst i /var/log/messages. Det er ligesom om at
/var/log/messages bliver "låst", kan det være rigtigt?

Mvh. Allan

PS: Det skulle ikke undre mig om der er bedre måder at gøre dette på?


 
 
( (07-04-2004)
Kommentar
Fra : (


Dato : 07-04-04 11:05

linux@smoFJERNSPAMelfen.dk (Allan) writes:

> Hej NG,
>
> Jeg er stødt på et (for mig) mærkeligt problem. Det jeg vil er at klippe alle
> linier fra /var/log/messages ud, som der har med iptables at gøre (dem der
> indeholder "iptables-log").


> # Slet linier der indeholder iptables-log, og overskriv original messages-fil
> sed '/iptables-log/d' /var/log/messages > /tmp/messages-uden-iptables
> mv -f /tmp/messages-uden-iptables /var/log/messages

Når du flytter en ny fil ind på pladsen skifter filen inodenummer, men
syslog har filen med det gamle nummer åben.

Så enten skal du genstarte syslog i dit script, eller også kan du prøve
om sed -i hjælper dig.

Logrotate genstarter services af netop den grund.


Mvh.

Dennis Jørgensen

Allan (07-04-2004)
Kommentar
Fra : Allan


Dato : 07-04-04 12:21

> Når du flytter en ny fil ind på pladsen skifter filen inodenummer, men
> syslog har filen med det gamle nummer åben.
>
> Så enten skal du genstarte syslog i dit script, eller også kan du prøve
> om sed -i hjælper dig.

sed -i hjælper desværre ikke (inode er det første til venstre):
[root@pc log]# ll -i test
230867 -rw-r--r-- 1 root root 12 Apr 7 12:42 test
[root@pc log]# sed -i '/s222/d' test
[root@pc log]# ll -i test
231929 -rw-r--r-- 1 root root 12 Apr 7 13:13 test

Er det ikke lidt resource-spild at genstarte syslog hver time, eller er
det bare mig?

Tak for hjælpen.

Mvh. Allan


Thomas Rasmussen (07-04-2004)
Kommentar
Fra : Thomas Rasmussen


Dato : 07-04-04 13:00

linux@smoFJERNSPAMelfen.dk (Allan) writes:

> Er det ikke lidt resource-spild at genstarte syslog hver time, eller
> er det bare mig?

Tjaa, det er det vel, ved dog ikke hvor meget det betyder i
praksis. Men kan du istedet ikke fortælle iptables at den skal kaste
sit output ud et andet sted? Eller kan man ikke sætte syslog op til at
alle logentries der matcher ^.*iptables-log.*$ ryger i en anden fil?

Det ville da være langt den bedste løsning. Det tager jo også lidt tid
at lave en sed på alle linierne i logfilen, specielt hvis den bliver
meget stor.

/Thomas

--
/"\ | Human Knowledge Belongs To The World
\ / | -- Milo Hoffman in "AntiTrust"
x |
/ \ <-- (ASCII Ribbon Campain against html emails and postings!)

Allan (07-04-2004)
Kommentar
Fra : Allan


Dato : 07-04-04 13:59

> Tjaa, det er det vel, ved dog ikke hvor meget det betyder i
> praksis. Men kan du istedet ikke fortælle iptables at den skal kaste
> sit output ud et andet sted? Eller kan man ikke sætte syslog op til at
> alle logentries der matcher ^.*iptables-log.*$ ryger i en anden fil?

Det var også sådan noget jeg ledte efter i starten, men kunne ikke rigtig
finde noget - derfor begyndte jeg at rode med "sed".
Er der nogle der ved om ovenstående kan lade sig gøre?

Mvh. Allan


( (12-04-2004)
Kommentar
Fra : (


Dato : 12-04-04 02:01

linux@smoFJERNSPAMelfen.dk (Allan) writes:

> Er det ikke lidt resource-spild at genstarte syslog hver time, eller er det
> bare mig?

Jeg ville ikke bekymre mig, men du kan prøve sende SIGHUP til processen
i stedet, man-siden angiver at det udover en genindlæsning af
konfigurationen også lukker åbne filer. Forskellen i belastning er nok
til at overse.


Mvh.

Dennis Jørgensen

Brian Møller (07-04-2004)
Kommentar
Fra : Brian Møller


Dato : 07-04-04 14:08

Hej

Nu skriver du ikke lige hvad program du bruger til at logge til
/var/log/messages; men jeg vil gætte på at dit syslog-program skal
genstartes hver gang du kører dit script.

/Brian


Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408836
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste