[BSD] smartmon kerdes

Zahemszky Gábor Gabor at Zahemszky.HU
2006. Okt. 11., Sze, 20:10:14 CEST


Én ezt írtam:

>> Hova került az a local3.* sor? Nem lehet, hogy egy #!akarmi (esetleg
>> !akarmi) kezdetű sor után? local3.none direktíva után syslog újraindítás

És az alanti syslog.conf alapján, mint azt előző levelemben is írtam,
megvan a hiba (és persze a kötelező mantra: RTFM, azaz man syslog.conf)

> *.err;kern.warning;auth.notice;ftp.none         /dev/console
> *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err;ftp.none
>  /var/log/messages
> security.*                                      /var/log/security
> auth.info;authpriv.info                         /var/log/auth.log
> mail.*                                          /var/log/maillog
> lpr.info                                        /var/log/lpd-errs
> ftp.*                                           /var/log/pureftpd.log
> cron.*                                          /var/log/cron
> *.=debug                                        /var/log/debug.log
> *.emerg                                         *
> console.*                                       /var/log/console.log
> !startslip
> *.*                                             /var/log/slip.log
> !ppp
> *.*                                             /var/log/ppp.log
> local3.*                                        /var/log/smartd.log

Itt a bibi, a !ppp sorral. Tehát:

=== man syslog.conf részlet ====
Each block of lines is separated from the previous block by a program or
hostname specification.  A block will only log messages corresponding to
the most recent program and hostname specifications given.  Thus, with a
block which selects `ppp' as the program, directly followed by a block
that selects messages from the hostname `dialhost', the second block
will only log messages from the ppp(8) program on dialhost.

A program specification is a line beginning with `#!prog' or `!prog'
(the former is for compatibility with the previous syslogd, if one is
sharing syslog.conf files, for example) and the following blocks will be
associated with calls to syslog(3) from that specific program.  A
program specification for `foo' will also match any message logged by
the kernel with the prefix `foo: '.  The `#!+prog' or `!+prog'
specification works just like the previous one, and the `#!-prog' or
`!-prog' specification will match any message but the ones from that
program.  Multiple programs may be listed, separated by commas:
`!prog1,prog2' matches messages from either program, while
`!-prog1,prog2' matches all messages but those from `prog1' or `prog2'.

===

Magyarul: az elején, amíg !prog, #!progi (stb) sor nem jön a syslog.conf
fájlban, addig a bejegyzések _minden_ programra vonatkoznak. Viszont
mihelyt ilyen sor jön - nálad/meg a rendszer defaultban ilyenből van egy
rakat, pl. !startslip, !ppp -, nos innentől kezdve a bejegyzés csak
olyan programra vonatkozik, akinek a neve a ! után áll. Azaz - nyilván
tudtodon kívül az utolsó 3 sora a syslog.confodnak azt jelenti, hogy
minden, magát ppp-nek nevező programtól érkező log (facility-től és
prioritástól függetlenül) a ppp.log -ba menjen; valamint minden, önmagát
ppp-nek mondó program által küldött, local3 facility-jű (és bármilyen
prioritású) üzenet viszont a smartd.log -ba kell menjen. Márpedig
gyanítom, a smartd nem hazudja magát ppp-nek. Úgyhogy a megoldás: rakd a
legutolsó local3 kezdetű sorodat a legelejére a fájlnak, a "névtelen"
szekcióba. Aztán a szokásos kill -HUP syslogdpid, és lehet eltűnődni
azon, hogy ez (a doksiolvasás) mi a francért nem jutott korábban eszünkbe.

Zahy < Gabor at Zahemszky dot HU >

-- 
#!/bin/ksh
Z='21N16I25C25E30, 40M30E33E25T15U!';IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ
';set -- $Z;for i;{ [[ $i = ? ]]&&print $i&&break;[[ $i = ???
]]&&j=$i&&i=${i%?};typeset -i40 i=8#$i;print -n ${i#???};[[ "$j" = ???
]]&&print -n "${j#??} "&&j=;typeset +i i;};IFS=' 0123456789 ';set --
$Z;for i;{ [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;j="$j
$i";typeset +l i;};print "$j"



További információk a(z) BSD levelezőlistáról