1

Собственно имеется скрипт syslog-ng адаптированный под мои нужды, но его часть

if [! cat /etc/rc.d/rc.M | grep 'next generation system logger']; then
    echo "# Start the next generation system logger." >> /etc/rc.d/rc.M 
    echo "if [ -x /etc/rc.d/rc.syslog-ng ]; then" >> /etc/rc.d/rc.M 
    echo "  . /etc/rc.d/rc.syslog-ng start " >> /etc/rc.d/rc.M 
    echo "fi" >> /etc/rc.d/rc.M 
fi

наотрез отказывается работать и выдает следующее сообщение

 Консоль:
./install_syslog.sh: line 75: [!: command not found
Configuration file has no version number, assuming syslog-ng 2.1 format. Please add @version: maj.min to the beginning of the file;
WARNING: global: the default value of chain_hostnames is changing to 'no' in version 3.0, please update your configuration accordingly;
Your configuration file uses an obsoleted keyword, please update your configuration; keyword='sync', change='flush_lines'
WARNING: input: sources do not remove new-line characters from messages by default in version 3.0, please add 'no-multi -line' flag to your configuration if you want to retain this functionality;
WARNING: template: the default value for template-escape is changing to 'no' in version 3.0, please update your configuration file accordingly;

собственно сам скрипт

+ открыть спойлер

#! /bin/sh
# Install some packages
installpkg ./eventlog-0.2.7-i486-1gufo.tgz
installpkg ./syslog-ng-3.0.2-i486-1gufo.tgz
# Getting IP on eth0
IP=`ifconfig | grep 'inet ' | cut -f 2 -d ":" | cut -f 1 -d " " |grep '' -m 1`;
# Generating /etc/syslog-ng/syslog-ng.conf
echo "options { long_hostnames(off); sync(0); };" > /etc/syslog-ng/syslog-ng.conf
echo '''
source src { unix-stream("/dev/log"); internal(); };
source from_all { udp (ip('''$IP''') port(514)); };

destination to_all { file ( "/var/log/HOSTS/$HOST/$HOST.log" perm(0666) dir_perm(0755)  create_dirs(yes) ); };
destination authlog { file("/var/log/auth.log"); };
destination cron { file("/var/log/cron.log"); };
destination daemon { file("/var/log/daemon.log"); };
destination kern { file("/var/log/kern.log"); };
destination lpr { file("/var/log/lpr.log"); };
destination user { file("/var/log/user.log"); };
destination uucp { file("/var/log/uucp.log"); };
destination ppp { file("/var/log/ppp.log"); };
destination debug { file("/var/log/debug"); };
destination messages { file("/var/log/messages"); };
destination console { usertty("root"); };
destination console_all { file("/dev/tty12"); };
#destination loghost { udp("loghost" port(999)); };

destination xconsole { pipe("/dev/xconsole"); };

filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
filter f_syslog { not facility(authpriv, mail); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kern { facility(kern); };
filter f_lpr { facility(lpr); };
filter f_user { facility(user); };
filter f_uucp { facility(cron); };
filter f_ppp { facility(local2); };
filter f_news { facility(news); };
filter f_debug { not facility(auth, authpriv); };
filter f_messages { level(info..warn)
    and not facility(auth, authpriv); };
filter f_emergency { level(emerg); };

filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_crit { level(crit); };
filter f_err { level(err); };

log { source(from_all); destination(to_all); };
log { source(src); filter(f_authpriv); destination(authlog); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_daemon); destination(daemon); };
log { source(src); filter(f_kern); destination(kern); };
log { source(src); filter(f_lpr); destination(lpr); };
log { source(src); filter(f_user); destination(user); };
log { source(src); filter(f_uucp); destination(uucp); };
log { source(src); filter(f_debug); destination(debug); };
log { source(src); filter(f_messages); destination(messages); };
log { source(src); filter(f_emergency); destination(console); };
log { source(src); filter(f_ppp); destination(ppp); };
log { source(src); destination(console_all); };''' >> /etc/syslog-ng/syslog-ng.conf

#echo "source from_all { udp (ip(""$IP"") port(514)); };" >> /etc/syslog-ng/syslog-ng.conf
#echo 'source src { unix-stream("/dev/log"); internal(); };' >> /etc/syslog-ng/syslog-ng.conf
#echo 'destination to_all { file ( "/var/log/HOSTS/$HOST/$HOST.log" perm(0666) dir_perm(0755)  create_dirs(yes) ); };' >> /etc/syslog-ng/syslog-ng.conf
#echo "log { source(from_all); destination(to_all); };" >> /etc/syslog-ng/syslog-ng.conf

cp ./rc.syslog-ng /etc/rc.d/rc.syslog-ng
chmod 755 /etc/rc.d/rc.syslog-ng
chmod 644 /etc/rc.d/rc.syslog
#cp ./rc.M /etc/rc.d/rc.M
if [! cat /etc/rc.d/rc.M | grep 'next generation system logger']; then
    echo "# Start the next generation system logger." >> /etc/rc.d/rc.M
    echo "if [ -x /etc/rc.d/rc.syslog-ng ]; then" >> /etc/rc.d/rc.M
    echo "  . /etc/rc.d/rc.syslog-ng start " >> /etc/rc.d/rc.M
    echo "fi" >> /etc/rc.d/rc.M
fi
killall syslogd
killall syslog-ng
syslog-ng
#tar -zxvf ./Python-3.1.3.tgz
#cd ./Python-3.1.3
#./configure
#make
#make install
# Uncomment  if U need some Python3.1

2

avaddon66 пишет:

./install_syslog.sh: line 75: [!: command not found

пробел забыли между [!

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

3

да, команда [ есть, а команды [! нет. Посмотрите в /bin/ если не верите. Или в /usr/bin/

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

4 (29.02.2012 20:50:59 отредактировано mil612)

drBatty, ставил, и ! убирал, выдает

 Консоль:
./install_syslog.sh: line 75: [: missing `]'

так же при добавлении строк

destination iptables { file("/var/log/iptables"); };
...
filter iptables { match (iptables); };
...
log { source(src); filter(iptables); destination(iptables); };

выдается

 Консоль:
WARNING: the match() filter without the use of the value() option is deprecated and hinders performance, please update your configuration;

5

avaddon66 пишет:

ставил, и ! убирал, выдает
Консоль:

./install_syslog.sh: line 75: [: missing `]'

фигасе поубирали  oO
тут она пишет: не хватает ], т.е. скобку [открыли, но не закрыли]

avaddon66 пишет:

так же при добавлении строк

destination iptables { file("/var/log/iptables"); };
...
filter iptables { match (iptables); };
...
log { source(src); filter(iptables); destination(iptables); };

этого я вообще не понял. Как и ваш bash.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

6

avaddon66 пишет:

if [! cat /etc/rc.d/rc.M | grep 'next generation system logger']; then

дык сама команда неправильная. Синтаксис следующий

if УСЛОВИЕ
then
   # тут пишем что делать если условие истинно
fi

при этом, УСЛОВИЕ это какая-то команда. Которая выдаёт код возврата. Если код равен нулю - условие истинно. У вас УСЛОВИЕ - спец-команда [, почитать про неё можно так

 Консоль:
$ man test

или погуглив в том же направлении. Например можно написать

if [ "X" = "Y" ]
then
    # эти команды никогда не выполнятся, ибо условие ложное
fi

А вы зачем-то в команду [ ] всунули какую-то другую команду.
Если хотите grep как условие, вообще уберите [скобки]

Да, ! перед УСЛОВИЕМ означает отрицание. И перед внутренним [в скобках] условием тоже.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7 (01.03.2012 00:11:37 отредактировано mil612)

убрал скобки и ! знак, скрипт выполнился без ошибок, но значения в rc.M не добавились

if [! cat /etc/rc.d/rc.M | grep 'next generation system logger']; then
    echo "# Start the next generation system logger." >> /etc/rc.d/rc.M 
    echo "if [ -x /etc/rc.d/rc.syslog-ng ]; then" >> /etc/rc.d/rc.M 
    echo "  . /etc/rc.d/rc.syslog-ng start " >> /etc/rc.d/rc.M 
    echo "fi" >> /etc/rc.d/rc.M 
fi

этим предполагалось, что при выполнении скрипта syslog-ng значения автоматически добавлять в скрипт rc.M  дабы не прописывать все это в ручную, а это 

destination iptables { file("/var/log/iptables"); };
...
filter iptables { match (iptables); };
...
log { source(src); filter(iptables); destination(iptables); };

для настройки логирования iptables, к сожалению в iptables у меня логируется то, что в messages и debug

8

avaddon66 пишет:

убрал скобки и ! знак, скрипт выполнился без ошибок, но значения в rc.M не добавились

очевидно условие ложное.

avaddon66 пишет:

этим предполагалось, что при выполнении скрипта syslog-ng значения автоматически добавлять в скрипт rc.M  дабы не прописывать все это в ручную

я понял. Но это не Ъ костыль. Патрег смотрит на вас с осуждением  :o

avaddon66 пишет:

а это

destination iptables { file("/var/log/iptables"); };
...
filter iptables { match (iptables); };
...
log { source(src); filter(iptables); destination(iptables); };

для настройки логирования iptables, к сожалению в iptables у меня логируется то, что в messages и debug

а ЭТО не из Slackware вовсе. Это какие-то дебнозависимые костыли...
Если дистр не соответствует вашему профилю - пишите в соотв. тему. Я этим голову не забиваю.  ae


ЗЫЖ если вы хотите управлять каким-то сервером - Ъ способ это не дописывать в /etc/rc.M (он вообще не для того), а просто менять командой chmod +-x права на соотв. скрипт. Именно для того условие if [ -x /etc/rc.d/rc.syslog-ng ]; then и предназначено.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

9

ничего из вышеперечисленного мне не понятно, костыли кикие-то... я кроме команды echo не знаю ничего, доходчивее поясняйте пожалуйста
исходя из статьи http://www.opennet.ru/base/sys/syslog_ng.txt.html

Добавляем в /etc/rc.d/rc.M:
        # Start the next generation system logger.
        if [ -x /etc/rc.d/rc.syslog-ng ]; then
          . /etc/rc.d/rc.syslog-ng start
        fi

это приходится делать все в ручную, а нужно чтобы при выполнении скрипта syslog-ng значения автоматически добавлять в скрипт rc.M, поскольку я в этом деле бестолковый, вот и прошу Вас умных людей доходчиво объяснить где ошибка
по поводу

а ЭТО не из Slackware вовсе. Это какие-то дебнозависимые костыли...

из той же статьи написано

Subject: Замена стандартного syslogd на syslog-ng в slackware linux.

только про iptables там не написано к сожалению

10

avaddon66 пишет:

исходя из статьи http://www.opennet.ru/base/sys/syslog_ng.txt.html

Date: Mon, 20 Feb 2006 14:31:37 +0000 (UTC)

Slackware Linux 10.2, kernel 2.6.15

так бы сразу и сказали.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

11

с ошибкой

 Консоль:
./install_syslog.sh: line 75: [!: command not found
разобрался, сейчас все прописывается и куда надо.
может кто-нибудь знает как избавиться от этих сообщений?
 Консоль:
Configuration file has no version number, assuming syslog-ng 2.1 format. Please add @version: maj.min to the beginning of the file;
WARNING: global: the default value of chain_hostnames is changing to 'no' in version 3.0, please update your configuration accordingly;
WARNING: input: sources do not remove new-line characters from messages by default in version 3.0, please add 'no-multi -line' flag to your configuration if you want to retain this functionality;
WARNING: template: the default value for template-escape is changing to 'no' in version 3.0, please update your configuration file accordingly;

12

Configuration file has no version number, assuming syslog-ng 2.1 format. Please add @version: maj.min to the beginning of the file;

что означает примерно следующее:
Файл настроек не содержит номера версии, использую формат syslog-ng 2.1. Добавьте @version: maj.min в начало этого файла.
Вместо maj.min подставить старший и младший номер версии syslog-ng.

Остальные 3 предупреждения после этого могут уйти (или нет), поскольку относятся к изменениям, сделанным в умолчальных значениях параметров между версиями. Например, chain_hostnames до 3.0 по умолчанию был "yes", а с 3.0 стал "no". Без номера версии нельзя сказать, что имел в виду админ при настройке, поэтому, чтобы не получилось неприятного сюрприза для тех, кто не трогал файл конфига после обновления до новой версии, выдаются подобные предупреждения.

13 (02.03.2012 12:20:06 отредактировано mil612)

bormant, Спасибо за дословный перевод, но смысл текста как бы понял и часть ругательств убрал (кроме этих конечно), я не знаю как добавить этот номер версии. В логах messages написано что version='3.0'/
Написал начало скрипта

version='3.0.2'

и

syslog-ng='3.0.2'

, но что-то все равно не так делаю :o

14 (02.03.2012 12:45:12 отредактировано bormant)

avaddon66 пишет:

Спасибо за дословный перевод, но смысл текста как бы понял

bormant пишет:

Добавьте @version:maj.min в начало этого файла.
Вместо maj.min подставить старший и младший номер версии syslog-ng.

У меня получается по описанию только
@version:3.0
Как у вас получается что-то ещё -- не могу знать.

В руководстве
http://www.balabit.com/sites/default/fi … min-en.pdf на стр.30 то же самое написано.

15 (02.03.2012 15:52:46 отредактировано mil612)

Вписал по описанию в файл syslog-ng.conf строку @version: 3.0, после рестарта rс.syslog-ng подобных "ругательств" нет, но при запуске самого скрипта сообщения остаются

+ открыть спойлер

#! /bin/sh
# Install some packages
installpkg ./eventlog-0.2.7-i486-1gufo.tgz
installpkg ./syslog-ng-3.0.2-i486-1gufo.tgz
# Getting IP on eth0
IP=`ifconfig | grep 'inet ' | cut -f 2 -d ":" | cut -f 1 -d " " |grep '' -m 1`;
# Generating /etc/syslog-ng/syslog-ng.conf
@version:3.0
include "syslog-ng.conf";
echo "options { long_hostnames(off); sync(0); };" > /etc/syslog-ng/syslog-ng.conf
echo '''
source src { unix-stream("/dev/log"); internal(); };
source from_all { udp (ip('''$IP''') port(514)); };

16

avaddon66 пишет:

# Generating /etc/syslog-ng/syslog-ng.conf
@version:3.0
include "syslog-ng.conf";
echo "options { long_hostnames(off); sync(0); };" > /etc/syslog-ng/syslog-ng.conf

# -- знаю, комментарий
echo -- знаю, вывод сообщения.
пару строк между ними -- не знаю. И bash не знает, о том и говорит.

17 (02.03.2012 17:22:49 отредактировано bormant)

avaddon66,
вообще говоря, почему б не выводить файл конфигурации с помощью встроенного документа (here document),

cat << EOF > /etc/syslog-ng/syslog-ng.conf
@version:3.0
include "syslog-ng.conf";
options { long_hostnames(off); sync(0); };
source src { unix-stream("/dev/log"); internal(); };
source from_all { udp (ip($IP) port(514)); };
EOF

18

почему б не выводить файл конфигурации с помощью встроенного документа

потому, что я не знаю как, т.к. вообще не программист, мне и так очень тяжело осваивать поступающую информацию от вас ac
добавил ваш код в скрипт, в итоге в syslog-ng.conf добавились как раз

@version:3.0
include "syslog-ng.conf";
options { long_hostnames(off); sync(0); };
source src { unix-stream("/dev/log"); internal(); };
source from_all { udp (ip('''$IP''') port(514)); };

остальной конфигурации нет вовсе, и вышли ошибки

 Консоль:
./install_syslog.sh: line 16: syntax error near unexpected token `('
./install_syslog.sh: line 16: `destination to_all { file ( "/var/log/HOSTS/$HOST/$HOST.log" perm(0666)'dir_perm(0755)  create_dirs(yes) ); };

19 (02.03.2012 17:42:17 отредактировано bormant)

avaddon66,
это был образец, показывающий, что такое here-document и насколько эффективно он заменяет портянки вроде

echo ... > /.../...
echo ... >> /.../...
echo ... >> /.../...

ps. В сообщении, на которое отвечал http://linuxforum.ru/viewtopic.php?pid=255772#p255772 ничего другого не было.

pps. В том сообщении нет строки 16. А в вашем скрипте -- есть. И в ней ошибка. Что в ней -- мне отсюда плоховато видно, только какие-то обрывки.

Повторюсь, идея была проста -- вложите ваш конфиг вместо "..." между строками
cat << EOF > /etc/syslog-ng/syslog-ng.conf
...
EOF
Если внутри нужны будут спецсимволы, вроде "$", их нужно отэкранировать "\$", сравните
destination to_all { file ( "/var/log/HOSTS/$HOST/$HOST.log" perm(0666)'dir_perm(0755)  create_dirs(yes) ); };
destination to_all { file ( "/var/log/HOSTS/\$HOST/\$HOST.log" perm(0666)'dir_perm(0755)  create_dirs(yes) ); };
Если нужно значение переменной -- экранировать не нужно:
source from_all { udp (ip($IP) port(514)); };
вместо $IP будет подставлено значение переменной окружения IP.

ppps. Не совсем понятно, зачем всё это делается и почему нельзя конфиг положить внутрь пакета или в файл рядом со скриптом. Если внутри переменных немного, их легко по месту поменять при помощи sed.

20 (02.03.2012 17:45:30 отредактировано mil612)

bormant пишет:

В сообщении, на которое отвечал Ошибка при выполнении скрипта syslog-ng #255772 ничего другого не было.

пардон, надо было добавить скрипт полностью

+ открыть спойлер

#! /bin/sh
# Install some packages
installpkg ./eventlog-0.2.7-i486-1gufo.tgz
installpkg ./syslog-ng-3.0.2-i486-1gufo.tgz
# Getting IP on eth0
IP=`ifconfig | grep 'inet ' | cut -f 2 -d ":" | cut -f 1 -d " " |grep '' -m 1`;
# Generating /etc/syslog-ng/syslog-ng.conf
echo "options { long_hostnames(off); flush_lines(0); };" > /etc/syslog-ng/syslog-ng.conf
echo '''
source src { unix-stream("/dev/log"); internal(); };
source from_all { udp (ip('''$IP''') port(514)); };

destination to_all { file ( "/var/log/HOSTS/$HOST/$HOST.log" perm(0666) dir_perm(0755)  create_dirs(yes) ); };
destination authlog { file("/var/log/auth.log"); };
destination cron { file("/var/log/cron.log"); };
destination daemon { file("/var/log/daemon.log"); };
destination kern { file("/var/log/kern.log"); };
destination lpr { file("/var/log/lpr.log"); };
destination user { file("/var/log/user.log"); };
destination uucp { file("/var/log/uucp.log"); };
destination ppp { file("/var/log/ppp.log"); };
destination debug { file("/var/log/debug"); };
destination messages { file("/var/log/messages"); };
destination iptables { file("/var/log/iptables.log"); };

destination console { usertty("root"); };
destination console_all { file("/dev/tty12"); };
#destination loghost { udp("loghost" port(999)); };
destination xconsole { pipe("/dev/xconsole"); };

filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
filter f_syslog { not facility(authpriv); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kern { facility(kern); };
filter f_lpr { facility(lpr); };
filter f_user { facility(user); };
filter f_uucp { facility(cron); };
filter f_ppp { facility(local2); };
filter f_debug { not facility(auth, authpriv) and not filter(f_iptables); };
filter f_messages { level(info..warn)and not facility(auth, authpriv) and not filter(f_iptables); };
filter f_emergency { level(emerg); };
filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_crit { level(crit); };
filter f_err { level(err); };
filter f_iptables { level(debug); };


log { source(from_all); destination(to_all); };
log { source(src); filter(f_authpriv); destination(authlog); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_daemon); destination(daemon); };
log { source(src); filter(f_kern); destination(kern); };
log { source(src); filter(f_lpr); destination(lpr); };
log { source(src); filter(f_user); destination(user); };
log { source(src); filter(f_uucp); destination(uucp); };
log { source(src); filter(f_debug); destination(debug); };
log { source(src); filter(f_messages); destination(messages); };
log { source(src); filter(f_emergency); destination(console); };
log { source(src); filter(f_ppp); destination(ppp); };
log { source(src); filter(f_iptables); destination(iptables); };
log { source(src); destination(console_all); };''' >> /etc/syslog-ng/syslog-ng.conf

#echo "source from_all { udp (ip(""$IP"") port(514)); };" >> /etc/syslog-ng/syslog-ng.conf
#echo 'source src { unix-stream("/dev/log"); internal(); };' >> /etc/syslog-ng/syslog-ng.conf
#echo 'destination to_all { file ( "/var/log/HOSTS/$HOST/$HOST.log" perm(0666) dir_perm(0755)  create_dirs(yes) ); };' >> /etc/syslog-ng/syslog-ng.conf
#echo "log { source(from_all); destination(to_all); };" >> /etc/syslog-ng/syslog-ng.conf

cp ./rc.syslog-ng /etc/rc.d/rc.syslog-ng
chmod 755 /etc/rc.d/rc.syslog-ng
chmod 644 /etc/rc.d/rc.syslog
#cp ./rc.M /etc/rc.d/rc.M
    echo "# Start the next generation system logger." >> /etc/rc.d/rc.M
    echo "if [ -x /etc/rc.d/rc.syslog-ng ]; then" >> /etc/rc.d/rc.M
    echo "  . /etc/rc.d/rc.syslog-ng start " >> /etc/rc.d/rc.M
    echo "fi" >> /etc/rc.d/rc.M
killall syslogd
killall syslog-ng
syslog-ng
#tar -zxvf ./Python-3.1.3.tgz
#cd ./Python-3.1.3
#./configure
#make
#make install

21 (02.03.2012 17:53:55 отредактировано bormant)

avaddon66,
самое главное -- отделите для себя 1) ошибки syslog-ng.conf, 2) ошибки bash и 3) логические ошибки.

Например, вот тут нет ли ошибки (я не силён в syslog-ng):
/etc/syslog-ng/syslog-ng.conf
...
include "syslog-ng.conf";

Это точно нормально? Не пытаетесь включить файл сам в себя?

22 (02.03.2012 18:56:41 отредактировано mil612)

Повторюсь, идея была проста -- вложите ваш конфиг вместо "..." между строками
cat << EOF > /etc/syslog-ng/syslog-ng.conf
...
EOF

и оно почти работает, только запарка появляется здесь

 Консоль:
syntax error in /etc/syslog-ng/syslog-ng.conf at line 4.

Например, вот тут нет ли ошибки (я не силён в syslog-ng):
/etc/syslog-ng/syslog-ng.conf

нет, сам конфиг рабочий, я добавил @version:3.0 в верхнюю строку при запуске rc.syslog-ng никаких ошибок нет
те сообщения о которых мы говорим возникают только при самой установке install-syslog.

include "syslog-ng.conf";
Это точно нормально? Не пытаетесь включить файл сам в себя?

я извращался по всякому и понял, что никакого толку от этой команд нет, т.к. она скорее всего не полная.
нужно как-то написать в скрипте следующее: Я syslog-ng версии 3.0, и @version:3.0 записать в нулевую строку syslog-ng.conf.
по скольку у меня ума для таких писаний нет, я пока додумался только для echo "@version:3.0" >> /etc/syslog-ng/syslog-ng.conf, но она пишется в последнюю строку syslog-ng

23 (02.03.2012 21:05:14 отредактировано mil612)

Фууух. Сделал все как советовал bormant`, у брал синтаксические ошибки, ну вроде бы заработало...ток почему-то не создался файл iptables  в /var/log/iptables.log :o

+ открыть спойлер

#! /bin/sh

# Install some packages
installpkg ./eventlog-0.2.7-i486-1gufo.tgz
installpkg ./syslog-ng-3.0.2-i486-1gufo.tgz
# Getting IP on eth0
IP=`ifconfig | grep 'inet ' | cut -f 2 -d ":" | cut -f 1 -d " " |grep '' -m 1`;
# Generating /etc/syslog-ng/syslog-ng.conf
cat << EOF > /etc/syslog-ng/syslog-ng.conf
@version:3.0
options { long_hostnames(off); flush_lines(0); };
source src { unix-stream("/dev/log"); internal(); };
source from_all { udp (ip($IP) port(514)); };

destination to_all { file ( "/var/log/HOSTS/\$HOST/\$HOST.log" perm(0666) dir_perm(0755)  create_dirs(yes) ); };
destination authlog { file("/var/log/auth.log"); };
destination cron { file("/var/log/cron.log"); };
destination daemon { file("/var/log/daemon.log"); };
destination kern { file("/var/log/kern.log"); };
destination lpr { file("/var/log/lpr.log"); };
destination user { file("/var/log/user.log"); };
destination uucp { file("/var/log/uucp.log"); };
destination ppp { file("/var/log/ppp.log"); };
destination iptables { file("/var/log/iptables.log"); };

destination debug { file("/var/log/debug"); };
destination messages { file("/var/log/messages"); };
destination console { usertty("root"); };
destination console_all { file("/dev/tty12"); };
#destination loghost { udp("loghost" port(999)); };

destination xconsole { pipe("/dev/xconsole"); };

filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
filter f_syslog { not facility(authpriv, mail); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kern { facility(kern); };
filter f_lpr { facility(lpr); };
filter f_user { facility(user); };
filter f_uucp { facility(cron); };
filter f_ppp { facility(local2); };
filter f_debug { not facility(auth, authpriv, news, mail); };
filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news); };
filter f_emergency { level(emerg); };

filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_crit { level(crit); };
filter f_err { level(err); };
filter iptables { level(debug); };

log { source(from_all); destination(to_all); };
log { source(src); filter(f_authpriv); destination(authlog); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_daemon); destination(daemon); };
log { source(src); filter(f_kern); destination(kern); };
log { source(src); filter(f_lpr); destination(lpr); };
log { source(src); filter(f_user); destination(user); };
log { source(src); filter(f_uucp); destination(uucp); };
log { source(src); filter(f_debug); destination(debug); };
log { source(src); filter(f_messages); destination(messages); };
log { source(src); filter(f_emergency); destination(console); };
log { source(src); filter(f_ppp); destination(ppp); };
log { source(src); filter(iptables); destination(iptables); };
log { source(src); destination(console_all); };
EOF

#echo "source from_all { udp (ip(""$IP"") port(514)); };" >> /etc/syslog-ng/syslog-ng.conf
#echo 'source src { unix-stream("/dev/log"); internal(); };' >> /etc/syslog-ng/syslog-ng.conf
#echo 'destination to_all { file ( "/var/log/HOSTS/$HOST/$HOST.log" perm(0666) dir_perm(0755)  create_dirs(yes) ); };' >> /etc/syslog-ng/syslog-ng.conf
#echo "log { source(from_all); destination(to_all); };" >> /etc/syslog-ng/syslog-ng.conf

cp ./rc.syslog-ng /etc/rc.d/rc.syslog-ng
chmod 755 /etc/rc.d/rc.syslog-ng
chmod 644 /etc/rc.d/rc.syslog
#cp ./rc.M /etc/rc.d/rc.M
#if  cat /etc/rc.d/rc.M | grep 'next generation system logger'; then
    #echo "# Start the next generation system logger." >> /etc/rc.d/rc.M
    #echo "if [ -x /etc/rc.d/rc.syslog-ng -a -x /usr/sbin/syslog-ng -a -d /var/log ]; then" >> /etc/rc.d/rc.M
    #echo "  . /etc/rc.d/rc.syslog-ng start " >> /etc/rc.d/rc.M
    #echo "fi" >> /etc/rc.d/rc.M
#fi
killall syslogd
killall syslog-ng
syslog-ng
#tar -zxvf ./Python-3.1.3.tgz
#cd ./Python-3.1.3
#./configure

24

avaddon66 пишет:

почему-то не создался файл iptables  в /var/log/iptables.log

Возможно ли, что файл создаётся по приходу первого сообщения, а от iptables пока ещё не было сообщений в лог?

25 (03.03.2012 17:16:16 отредактировано mil612)

bormant пишет:

Возможно ли, что файл создаётся по приходу первого сообщения, а от iptables пока ещё не было сообщений в лог?

да, немного подождав, файл создался и логи пошли, правда не те какие нужно ag , а если быть точнее такие же как в syslog-ng.log

 Консоль:
Mar  3 01:05:02 syslog-ng[19718]: Log statistics; processed='destination(console_all)=52', processed='destination(daemon)=26', processed='destination(kern)=0', processed='destination(authlog)=0', processed='destination(cron)=0', processed='destination(lpr)=0', processed='destination(to_all)=48139', processed='destination(messages)=26', processed='destination(ppp)=0', processed='src.internal(src#1)=26', stamp='src.internal(src#1)=1330721702', processed='destination(uucp)=0', processed='destination(user)=0', processed='destination(debug)=52', processed='destination(console)=0', processed='destination(firewall)=25', processed='center(received)=0', processed='source(src)=52', processed='center(queued)=0', processed='source(from_all)=48139'

На этом думаю проблему с выполнением скрипта syslog-ng можно считать закрытой.
Решение проблемы с  логированием iptables предлагаю продолжить в отдельной теме http://linuxforum.ru/viewtopic.php?id=20646.