Skip to main content

Syslogd Linux og Unix Command

logger command - Log Script Execution status into log file or syslog server (Juni 2026)

logger command - Log Script Execution status into log file or syslog server (Juni 2026)
Anonim

Sysklogd leverer to systemværktøjer, der understøtter systemlogging og kernel message trapping. Understøttelse af både internet- og unix-domæneudgange gør det muligt for denne hjælpepakke at understøtte både lokal og ekstern logning.

Systemlogging leveres af en version afsyslogd(8) afledt af bestanden BSD kilder. Støtte til kernel logging er leveret afklogd(8) hjælpeværktøj, som gør det muligt at udføre kernelogging på enten en selvstændig måde eller som en syslogd-klient.

Syslogd giver en slags logning, som mange moderne programmer bruger. Hver logget besked indeholder mindst et tidspunkt og et værtsnavnfelt, normalt også et programnavnfelt, men det afhænger af, hvor troværdigt loggeprogrammet er.

Menssyslogd kilder er blevet stærkt modificeret et par noter er i orden. Først og fremmest har der været et systematisk forsøg på at sikre, at syslogd følger sin standard, standard BSD-adfærd. Det andet vigtige koncept at notere er, at denne version af syslogd interagerer transparent med den version af syslog, der findes i standardbibliotekerne. Hvis et binært link til de standard delte biblioteker ikke fungerer korrekt, vil vi gerne have et eksempel på den uregelmæssige adfærd.

Hovedkonfigurationsfilen /etc/syslog.conf eller en alternativ fil, der er givet med-f mulighed, læses ved opstart. Alle linjer, der begynder med hash-markeringen (`` # '') og tomme linjer ignoreres. Hvis der opstår en fejl under parsering, ignoreres hele linjen.

Synopsis

syslogd -en fatning -d -f config fil -h -l hostlist -m interval -n -p fatning -r -s domainlist -v -x

Muligheder

-en fatning

Ved hjælp af dette argument kan du angive yderligere stikkontakter derafsyslogd skal lytte til. Dette er nødvendigt, hvis du vil lade nogle demoner køre inden for et chroot () miljø. Du kan bruge op til 19 ekstra stik. Hvis dit miljø har brug for endnu mere, skal du øge symboletMAXFUNIX inden for syslogd.c kildefilen. Et eksempel på en chroot () dæmon er beskrevet af folket fra OpenBSD på http://www.psionic.com/papers/dns.html.

-d

Aktiver debug-tilstand. Ved hjælp af dette vil daemonen ikke fortsætte agaffel(2) at sætte sig i baggrunden, men modsat det ophold i forgrunden og skrive meget debug-informationer på den aktuelle tty. Se afsnittet DEBUGGING for mere information.

-f config fil

Angiv en alternativ konfigurationsfil i stedet for /etc/syslog.conf , som er standard.

-h

Som standard vil syslogd ikke videresende meddelelser, der modtages fra eksterne værter. Hvis du angiver denne switch på kommandolinjen, får log-demonen at videresende eventuelle fjernmeddelelser, den modtager, til videresende værter, der er defineret.

-l hostlist

Angiv et værtsnavn, der kun skal logges med dets simple værtsnavn og ikke fqdn. Flere værter kan specificeres ved hjælp af kolon (``: '') separator.

-m interval

Detsyslogd logger et mærke tidsstempel regelmæssigt. Standardværdien interval mellem to - MARK - linjer er 20 minutter. Dette kan ændres med denne mulighed. Indstilling af interval til nul slukker det helt.

-n

Undgå automatisk baggrunde. Dette er nødvendigt især hvissyslogd er startet og kontrolleret afi det(8).

-p fatning

Du kan angive et alternativt unix domæneudtag i stedet for / Dev / log .

-r

Denne mulighed gør det muligt for anlægget at modtage en besked fra netværket ved hjælp af et internet domæne-stik med syslog-tjenesten (se (5)). Standard er, at der ikke modtages nogen beskeder fra netværket.

Denne mulighed introduceres i version 1.3 af sysklogd-pakken. Vær opmærksom på, at standardadfærden er modsat af, hvordan ældre versioner opfører dig, så du skal muligvis tænde dette.

-s domainlist

Angiv et domænenavn, der skal fjernes før logging. Flere domæner kan specificeres ved hjælp af kolon (``: '') separator. Vær opmærksom på, at der ikke kan angives underdomeiner, men kun hele domæner. For eksempel hvis-s nord.de er angivet, og værtsloggen løser til satu.infodrom.north.de intet domæne ville blive skåret, skal du angive to domæner som:-s nord.de:infodrom.north.de.

-v

Udskriftsversion og exit.

-x

Deaktiver navneopsøgninger, når du modtager fjernmeddelelser. Dette undgår deadlocks, når navneserveren kører på samme maskine, der kører syslog-dæmonen.

Signaler

syslogd reagerer på et sæt af signaler. Du kan let sende et signal tilsyslogd ved hjælp af følgende:

kill -SIGNAL `cat / var / run / syslogd.pid`

SIGHUP

Dette ladersyslogd udføre en re-initialisering. Alle åbne filer er lukket, konfigurationsfilen (standard er /etc/syslog.conf ) vil blive genlæst ogsyslog(3) anlægget startes igen.

SIGTERM

Detsyslogd vil dø.

SIGINT, SIGQUIT

Hvis fejlfinding er aktiveret ignoreres disse ellerssyslogd vil dø.

SIGUSR1

Tænd / sluk for fejlfinding. Denne indstilling kan kun bruges, hvissyslogd er startet med-d debug option.

SIGCHLD

Vent til børn, hvis nogle er født, på grund af mandenes budskaber.

Konfiguration af filsyntaksforskelle

syslogd bruger en lidt anderledes syntaks for sin konfigurationsfil end de originale BSD-kilder. Oprindeligt blev alle meddelelser med en bestemt prioritet og derover videresendt til logfilen.

For eksempel forårsagede følgende linje ALLE output fra dæmoner, der bruger dæmonfaciliteterne (fejlfinding er den laveste prioritet, så alle højere vil også matche) for at gå ind i / Usr / adm / daemoner :

# Prøve syslog.conf daemon.debug / usr / adm / daemons

Under den nye ordning forbliver denne adfærd den samme. Forskellen er tilføjelsen af ​​fire nye specifikationer, asterisken (*) wildcard, ligningstegnet (=), udråbstegn (!) og minustegnet (-).

Det* angiver, at alle meddelelser for den angivne facilitet skal rettes til destinationen. Bemærk, at denne adfærd er degenereret med angivelse af et prioritetsniveau for fejlfinding. Brugere har angivet, at asterisk notationen er mere intuitiv.

Det= wildcard bruges til at begrænse logning til den specificerede prioritetsklasse. Dette gør det muligt for eksempel at routere kun fejlfindingsmeddelelser til en bestemt logkilde.

F.eks. Følgende linje i syslog.conf ville rette fejlfindingsmeddelelser fra alle kilder til / Usr / adm / debug fil.

# Prøve syslog.conf *. = Debug / usr / adm / debug

Det! bruges til at udelukke logning af de specificerede prioriteter. Dette påvirker alle (!) Muligheder for at specificere prioriteter.

F.eks. Vil de følgende linjer logge alle meddelelser fra facilitetsposten bortset fra dem med prioriteret info til / Usr / adm / mail fil. Og alle meddelelser fra news.info (inklusive) til news.crit (eksklusive) vil blive logget til / Usr / adm / nyheder fil.

# Prøve syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; nyheder.! Crit / usr / adm / news

Du kan bruge det intuitivt som en undtagelsesspecifik. Den ovennævnte fortolkning er simpelthen omvendt. Gør det, du kan bruge

mail.none

eller

post.!*

eller

mail.! debug

at springe over hver besked, der kommer med en mail facilitet. Der er meget plads til at lege med det. :-)

Det- må kun bruges til at prefikse et filnavn, hvis du vil udelade at synkronisere filen efter hver skrivning til den.

Dette kan tage en smule akklimatisering for de personer, der plejede den rene BSD-adfærd, men testerne har angivet, at denne syntaks er noget mere fleksibel end BSD-adfærden. Bemærk, at disse ændringer ikke bør påvirke standardensyslog.conf(5) filer. Du skal specifikt ændre konfigurationsfilerne for at opnå den forbedrede adfærd.

Støtte til fjernlogning

Disse ændringer giver netværkssupport til syslogd-faciliteten. Netværkssupport betyder, at meddelelser kan videresendes fra et node, der kører syslogd til en anden node, der kører syslogd, hvor de faktisk bliver logget på en diskfil.

For at aktivere dette skal du angive-r mulighed på kommandolinjen. Standardadfærden er densyslogd vil ikke lytte til netværket.

Strategien er at have syslogd lytte på en unix domænekontakt til lokalt genererede logmeddelelser. Denne adfærd vil gøre det muligt for syslogd at interagere med syslog'et, der findes i standard C-biblioteket. Samtidig lytter syslogd på standard syslog porten til meddelelser videresendt fra andre værter. For at få dette arbejde korrekttjenester(5) filer (typisk fundet i /etc ) skal have følgende angivelse:

syslog 514 / udp

Hvis denne post manglersyslogd hverken kan modtage fjernmeddelelser eller sende dem, fordi UDP-porten ikke kan åbnes. I stedet, syslogd vil dø straks og udbrede en fejlmeddelelse.

For at få beskeder fremsendt til en anden vært, skal du erstatte den normale fillinje i syslog.conf fil med navnet på den vært, hvortil meddelelserne skal sendes, udført med en @.

For eksempel at videresendeALLE beskeder til en fjern vært ved hjælp af følgende syslog.conf indgang:

# Prøve syslogd konfigurationsfil til # beskeder til en fjern vært fremad alle. *.* @værtsnavn

At videresende allekerne meddelelser til en fjernhost vil konfigurationsfilen være som følger:

# Prøvekonfigurationsfil for at videresende alle kernel # -meddelelser til en ekstern vært. kernen. * @hostname

Hvis fjernværtsnavnet ikke kan løses ved opstart, da navnserveren muligvis ikke er tilgængelig (den kan startes efter syslogd), behøver du ikke bekymre dig.syslogd vil forsøge at løse navnet ti gange og derefter klage. En anden mulighed for at undgå dette er at placere værtsnavnet i / etc / hosts .

Med normalsyslogds du ville få syslog-sløjfer, hvis du sender meddelelser, der blev modtaget fra en ekstern vært til den samme vært (eller mere kompliceret til en tredje vært, der sender den tilbage til den første, og så videre). I mit domæne (Infodrom Oldenburg) har vi ved et uheld fået en og vores diske fyldt op med den samme enkelt besked. :-(

For at undgå dette i flere tider, blev der ikke sendt nogen beskeder, der blev modtaget fra en fjernhost, til en anden (eller den samme) fjernhoste længere. Hvis der er scenarier, hvor dette ikke giver mening, så slip mig (Joey) en linje.

Hvis fjernværten er placeret i samme domæne som værten,syslogd kører på, vil kun det simple værtsnavn blive logget i stedet for hele fqdn.

I et lokalt netværk kan du levere en central logserver til at have alle vigtige oplysninger gemt på en maskine. Hvis netværket består af forskellige domæner, behøver du ikke at klage over at logge fuldt kvalificerede navne i stedet for simple værtsnavne. Du kan muligvis bruge stribe-domænefunktionen-s af denne server. Du kan fortællesyslogd at fjerne flere domæner end den serveren er placeret i og kun logge på enkle værtsnavne.

Bruger-l mulighed er der også mulighed for at definere enkeltværter som lokale maskiner. Dette resulterer også i at logge kun deres enkle værtsnavne og ikke fqdns.

UDP-stikket, der bruges til at videresende meddelelser til eksterne værter eller modtage meddelelser fra dem, åbnes kun, når det er nødvendigt. I udgivelser forud for 1.3-23 blev det åbnet hver gang men ikke åbnet til læsning eller videresendelse.

Udgang til navngivne rør (FIFO'er)

Denne version af syslogd har support til loggeudgang til navngivne pipes (femos). Et femo eller navngivet rør kan bruges som destination for logmeddelelser ved at udpege et pipysymbol (`` | '') til navnet på filen. Dette er praktisk til debugging. Bemærk at fifo skal oprettes med kommandoen mkfifo før syslogd er startet.

Den følgende konfigurationsfil ruter fejlfindingsmeddelelser fra kernen til en fifo:

# Prøvekonfiguration til rute kernel debugging # meddelelser KUN til / usr / adm / debug som er et # navngivet rør. kernen. = debug | / usr / adm / debug

Installationshensyn

Der er sandsynligvis en vigtig overvejelse, når du installerer denne version af syslogd. Denne version af syslogd er afhængig af korrekt formatering af meddelelser ved syslog-funktionen. Funktionen af ​​syslog-funktionen i de delte biblioteker blev ændret et sted i regionen libc.so.4. 2-4 .n. Den specifikke ændring var at nulstille meddelelsen, før den blev sendt til / Dev / log fatning. Korrekt funktion af denne version af syslogd er afhængig af, at meddelelsen er nulstillet.

Dette problem vil typisk manifestere sig, hvis der bruges gamle statisk forbundne binære filer på systemet. Binære filer, der bruger gamle versioner af syslog-funktionen, vil medføre, at tomme linjer bliver logget efterfulgt af meddelelsen med det første tegn i meddelelsen fjernet. Ved at relinkere disse binære filer til nyere versioner af de delte biblioteker vil dette problem afhjælpes.

Bådesyslogd(8) ogklogd(8) kan enten køres fra init (8) eller startes som en del af rc. * Sekvensen. Hvis det er startet fra init, er valgmuligheden -n skal indstilles, ellers får du tonsvis af syslog daemoner startet. Dette er fordii det(8) afhænger af proces ID.

Sikkerhedstrusler

Der er potentialet for syslogd-dæmonen til at blive brugt som en kanal for et benægtelsesangreb. Tak, gå til John Morrison ([email protected]) for at advare mig om dette potentiale. Et rogue-program (mer) kunne meget nemt oversvømme syslogd-dæmonen med syslog-meddelelser, hvilket resulterer i, at logfilerne indtager hele det resterende rum på filsystemet. Aktivering af logning over inet domæne stikkene vil naturligvis udsætte et system for risici uden for programmer eller personer på den lokale maskine.

Der findes en række metoder til beskyttelse af en maskine:

  1. Gennemfør kernel firewalling for at begrænse hvilke værter eller netværk, der har adgang til 514 / UDP-stikket.
  2. Logning kan rettes til et isoleret eller ikke-root-filsystem, som, hvis det er fyldt, ikke vil forringe maskinen.
  3. Ext2-filsystemet kan bruges som kan konfigureres til at begrænse en vis procentdel af et filsystem til brug kun ved hjælp af root.BEMÆRK at dette vil kræve, at syslogd køres som en ikke-rod proces. OGSÅ BEMÆRK at dette forhindrer brugen af ​​fjernlogning, da syslogd ikke kan binde til 514 / UDP-stikket.
  4. Deaktivering af inet domæne stikkontakter begrænser risikoen for den lokale maskine.
  5. Brug trin 4, og hvis problemet fortsætter og ikke er sekundært for et skurk program / daemon, få en 3,5 m (ca. 1 meter) længde af sugestang * og snak med den pågældende bruger. Sucker rod def. --- 3/4, 7/8 eller 1in. Hærdet stålstang, hankønnet gevind i hver ende. Primær anvendelse i olieindustrien i det vestlige Nord Dakota og andre steder til at pumpe "suge" olie fra oliebrønde. Sekundære anvendelser er til opførelse af kvægfoderpartier og til behandling af lejlighedsvis recalcitrant eller krigførende individ.

debugging

Når fejlfinding er tændt med-d mulighed dereftersyslogd vil være meget verbose ved at skrive meget af hvad det gør på stdout. Når konfigurationsfilen genindlæses og gensparses, ser du en tabelformat, der svarer til den interne datastruktur. Denne tabel består af fire felter:

nummer

Dette felt indeholder et serienummer, der starter med nul. Dette tal repræsenterer positionen i den interne datastruktur (dvs. arrayet). Hvis et tal er udeladt, kan der være en fejl i den tilsvarende linje i /etc/syslog.conf .

mønster

Dette felt er vanskelig og repræsenterer den interne struktur nøjagtigt. Hver kolonne står for en facilitet (sesyslog(3)). Som du kan se, er der stadig nogle faciliteter, der er fri for tidligere brug, kun de venstrefløjter bruges. Hvert felt i en kolonne repræsenterer prioriteterne (sesyslog(3)).

handling

Dette felt beskriver den særlige handling, der finder sted, når der modtages en besked, der matcher mønsteret. Se isyslog.conf(5) manpage for alle mulige handlinger.

argumenter

Dette felt viser yderligere argumenter til handlingerne i det sidste felt. For fillogging er dette filnavnet til logfilen; til brugerlogning er dette en liste over brugere; til fjernlogning er dette værtsnavnet på maskinen til at logge på; til konsol-logging er dette den brugte konsol; for tty-logging er dette den angivne tty; væggen har ingen yderligere argumenter.

Se også

logger(1), syslog(2), (5)

Samarbejdspartnere

syslogd er taget fra BSD kilder, Greg Wettstein ([email protected]) udførte havnen til Linux, Martin Schulze ([email protected]) fikset nogle fejl og tilføjede flere nye funktioner.Klogdblev oprindeligt skrevet af Steve Lord ([email protected]), gjorde Greg Wettstein store forbedringer.

Dr. Greg WettsteinEnjellic Systems Development

Oncology Research Division Computing FacilityRoger Maris Cancer CenterFargo, ND[email protected]

Stephen TweedieInstitut for DatalogiEdinburgh University, Scotland[email protected]

Juha Virtanen[email protected]

Shane Alderton[email protected]

Martin SchulzeInfodrom Oldenburg[email protected]

Vigtig: Brug mand kommando ( % mand ) for at se, hvordan en kommando bruges på din computer.

relaterede artikler

  • sysklogd - Linux Command - Unix Command
  • rwall - Hvad er rwa