Как в Соляре указать sysolg'у бросать сообщения от определенного демона, например in.ftpd, в файл или куда-либо
>Как в Соляре указать sysolg'у бросать сообщения от определенного демона, например in.ftpd,
>в файл или куда-либосперва демону нужно сказать, чтоб он сбрасывал сообщения для определенного facility, а syslog'у, шоб он сбрасывал сообщения для этого facility туда, куда тебе надо.
Иначе через syslog никак.
man syslog
>>Как в Соляре указать sysolg'у бросать сообщения от определенного демона, например in.ftpd,
>>в файл или куда-либо
>
>сперва демону нужно сказать, чтоб он сбрасывал сообщения для определенного facility, а
>syslog'у, шоб он сбрасывал сообщения для этого facility туда, куда тебе
>надо.
>
>Иначе через syslog никак.
>
>man syslog
в мане кроме как типа
daemon.notice /var/adm/messages
ни фига не указанопримерчик можно?
man syslog====skipped====
OPTIONS
-d Debugging information is logged to the system log
daemon syslogd(1M).
====skipped====
in.ftpd logs various errors to syslogd , with a facility
code of daemon.
===============syslog.conf
=============
daemon.* /var/log/daemon.logтолько учти, что все сообщения от всех демонов туда валиться будут
а вообще глянь хоть одним глазом в /etc/syslog.conf
там все и так понятно, что к чему
>man syslog
>
>====skipped====
>OPTIONS
> -d
> Debugging information is logged to the system log
>
> daemon syslogd(1M).
>====skipped====
> in.ftpd logs various errors to syslogd
>, with a facility
> code of daemon.
>===============
>
>syslog.conf
>=============
>daemon.* /var/log/daemon.logНу я вроде как не полный профан и такие правила и сам составлять могу, вопрос видимо понят неверно
>
>только учти, что все сообщения от всех демонов туда валиться будутмне надо только от конкретного демона, а не от всех - в этом то и задача
>
>а вообще глянь хоть одним глазом в /etc/syslog.conf
>там все и так понятно, что к чемувдоль и поперек, а также с маном впридачу и SA-288 перед носом :-)
>>man syslog
>>
>>====skipped====
>>OPTIONS
>> -d
>> Debugging information is logged to the system log
>>
>> daemon syslogd(1M).
>>====skipped====
>> in.ftpd logs various errors to syslogd
>>, with a facility
>> code of daemon.
>>===============
>>
>>syslog.conf
>>=============
>>daemon.* /var/log/daemon.log
>
>Ну я вроде как не полный профан и такие правила и сам
>составлять могу, вопрос видимо понят неверно
>
>>
>>только учти, что все сообщения от всех демонов туда валиться будут
>
>мне надо только от конкретного демона, а не от всех - в
>этом то и задача
>
>>
>>а вообще глянь хоть одним глазом в /etc/syslog.conf
>>там все и так понятно, что к чему
>
>вдоль и поперек, а также с маном впридачу и SA-288 перед носом
>:-)
Из man syslog.conf (linux):Named Pipes
This version of syslogd(8) has support for logging output
to named pipes (fifos). A fifo or named pipe can be used
as a destination for log messages by prepending a pipe
symbol (``|'') to the name of the file. This is handy for
debugging. Note that the fifo must be created with the
mkfifo(1) command before syslogd(8) is started.
Так что "daemon.* |/path/my_script" - и вперед. Кидаешь все полученные скриптом данные в стандартный лог-файл + если сумеешь в скрипте отличить сообщения своей программы кладешь их в отдельный файл.
>>>man syslog
>>>
>>>====skipped====
>>>OPTIONS
>>> -d
>>> Debugging information is logged to the system log
>>>
>>> daemon syslogd(1M).
>>>====skipped====
>>> in.ftpd logs various errors to syslogd
>>>, with a facility
>>> code of daemon.
>>>===============
>>>
>>>syslog.conf
>>>=============
>>>daemon.* /var/log/daemon.log
>>
>>Ну я вроде как не полный профан и такие правила и сам
>>составлять могу, вопрос видимо понят неверно
>>
>>>
>>>только учти, что все сообщения от всех демонов туда валиться будут
>>
>>мне надо только от конкретного демона, а не от всех - в
>>этом то и задача
>>
>>>
>>>а вообще глянь хоть одним глазом в /etc/syslog.conf
>>>там все и так понятно, что к чему
>>
>>вдоль и поперек, а также с маном впридачу и SA-288 перед носом
>>:-)
>
>
>Из man syslog.conf (linux):
>
> Named Pipes
> This version of syslogd(8) has
>support for logging output
> to named pipes (fifos).
> A fifo or named pipe can be used
> as a destination for log
>messages by prepending a pipe
> symbol (``|'') to the name
>of the file. This is handy for
> debugging. Note that the
>fifo must be created with the
> mkfifo(1) command before syslogd(8)
>is started.
>
>
>Так что "daemon.* |/path/my_script" - и вперед. Кидаешь
>все полученные скриптом данные в стандартный лог-файл + если сумеешь в
>скрипте отличить сообщения своей программы кладешь их в отдельный файл.
спасибо - опробуем, вот только в мане соляры этого нет
>>>man syslog
>>>
>>>====skipped====
>>>OPTIONS
>>> -d
>>> Debugging information is logged to the system log
>>>
>>> daemon syslogd(1M).
>>>====skipped====
>>> in.ftpd logs various errors to syslogd
>>>, with a facility
>>> code of daemon.
>>>===============
>>>
>>>syslog.conf
>>>=============
>>>daemon.* /var/log/daemon.log
>>
>>Ну я вроде как не полный профан и такие правила и сам
>>составлять могу, вопрос видимо понят неверно
>>
>>>
>>>только учти, что все сообщения от всех демонов туда валиться будут
>>
>>мне надо только от конкретного демона, а не от всех - в
>>этом то и задача
>>
>>>
>>>а вообще глянь хоть одним глазом в /etc/syslog.conf
>>>там все и так понятно, что к чему
>>
>>вдоль и поперек, а также с маном впридачу и SA-288 перед носом
>>:-)
>
>
>Из man syslog.conf (linux):
>
> Named Pipes
> This version of syslogd(8) has
>support for logging output
> to named pipes (fifos).
> A fifo or named pipe can be used
> as a destination for log
>messages by prepending a pipe
> symbol (``|'') to the name
>of the file. This is handy for
> debugging. Note that the
>fifo must be created with the
> mkfifo(1) command before syslogd(8)
>is started.
>
>
>Так что "daemon.* |/path/my_script" - и вперед. Кидаешь
>все полученные скриптом данные в стандартный лог-файл + если сумеешь в
>скрипте отличить сообщения своей программы кладешь их в отдельный файл.
тоже не работает, правда и не ругается - видимо у соляры такого нету
>>>>man syslog
>>>>
>>>>====skipped====
>>>>OPTIONS
>>>> -d
>>>> Debugging information is logged to the system log
>>>>
>>>> daemon syslogd(1M).
>>>>====skipped====
>>>> in.ftpd logs various errors to syslogd
>>>>, with a facility
>>>> code of daemon.
>>>>===============
>>>>
>>>>syslog.conf
>>>>=============
>>>>daemon.* /var/log/daemon.log
>>>
>>>Ну я вроде как не полный профан и такие правила и сам
>>>составлять могу, вопрос видимо понят неверно
>>>
>>>>
>>>>только учти, что все сообщения от всех демонов туда валиться будут
>>>
>>>мне надо только от конкретного демона, а не от всех - в
>>>этом то и задача
>>>
>>>>
>>>>а вообще глянь хоть одним глазом в /etc/syslog.conf
>>>>там все и так понятно, что к чему
>>>
>>>вдоль и поперек, а также с маном впридачу и SA-288 перед носом
>>>:-)
>>
>>
>>Из man syslog.conf (linux):
>>
>> Named Pipes
>> This version of syslogd(8) has
>>support for logging output
>> to named pipes (fifos).
>> A fifo or named pipe can be used
>> as a destination for log
>>messages by prepending a pipe
>> symbol (``|'') to the name
>>of the file. This is handy for
>> debugging. Note that the
>>fifo must be created with the
>> mkfifo(1) command before syslogd(8)
>>is started.
>>
>>
>>Так что "daemon.* |/path/my_script" - и вперед. Кидаешь
>>все полученные скриптом данные в стандартный лог-файл + если сумеешь в
>>скрипте отличить сообщения своей программы кладешь их в отдельный файл.
>
>
>тоже не работает, правда и не ругается - видимо у соляры такого
>нету
Виноват - я сам ман наискосок прочитал и эту вещь не пробовал, поэтому ошибочка вышла. Делать надо так:1) создаем именованный канал fifo
mkfifo /dev/my_pipe
2) в syslog.conf пишем "daemon.* |/dev/my_pipe" и перезапускаем syslogd
3) пишем скрипт
#!/bin/bash
# script my_script
while read line
echo "$line"
done4) запускаем скрипт
/path/my_script < /dev/my_pipe
Это я проверил и у меня сработало нормально - скрипт начал выдавать на экран сообщения от syslogd. Идея я думаю понятна: создаешь именованный канал, отправляешь сообщения syslogd в него, а в программе или скрипте открываешь этот самый канал, читаешь из него данные и обрабатываешь.
Удачи !!!
PS если твой syslogd в прошлый раз не обругался, думаю что он должен эту вещь переварить :)
в /etc/syslog.conf...
!if.ftpd
*.* /var/log/ftpd.log...
>в /etc/syslog.conf
>
>...
>
>!if.ftpd
>*.*
>
>/var/log/ftpd.log
>
>...сделал так - ну и получил для строчки "!in.ftpd"
/etc/init.d/syslog start
syslog service starting.
syslogd: line 66: unknown priority name ""
значит сановский сислог так не умеет