Как зарегистрировать вывод к maillog?

Простое awk альтернатива:

./runme.sh | awk '/ook/{print>>"ook.out"}/eek/{print>>"eek.out"}'

С небольшим дополнением awk код может быть сделан легко расширяемым – просто вставленный в массив r, поскольку много пар выходного файла регулярного выражения необходимы:

./runme.sh | awk 'BEGIN{r["ook"]="ook.out";r["eek"]="eek.out"}{for(i in r)if($0~i)print>>r[i]}'

sed w команда эквивалентна из >, печально нет никакого способа добавить в файл:

./runme.sh | sed -n $'/ook/wook.out\n/eek/week.out'
0
19.01.2013, 14:21
2 ответа

Оказывается материалом, я регистрировал использование logger также выходился из системы к моему /var/log/mail.log файл так или иначе. Я думаю, что это - becasue (на Debian так или иначе) конфигурация входа значения по умолчанию в /etc/rsyslog.conf определяет журнал по умолчанию для почтового 'средства', чтобы быть, что файл mail.log и мой сценарий действительно регистрировались к почтовому 'средству'. Это, кажется, делает logger зарегистрируйтесь и к mail.log и к системному журналу.

1
28.01.2020, 02:53

"Вручную откройте и добавьте" в контексте удара, довольно просто:

mycommand >> /var/log/mail.log

Стандартный вывод от mycommand переходит к файлу. Если Вы помещаете это в начале сценария:

exec 1>&2&>> /var/log/mail.log

Стандартный вывод (1) и ошибка (2) для всего в остальной части сценария будет добавлен в файл.

Если Вы хотите первоначально усечь файл (т.е., не добавляют к существующему ранее содержанию), использовать > вместо >>.

0
28.01.2020, 02:53
  • 1
    Право, но рассмотрение другого материала, это было зарегистрировано к mail.log, это имеет тот же самый формат как материал, это было зарегистрировано к системному журналу. По-видимому, некоторой библиотекой пользуются для вывода этого, а не вручную создаваемой строки каждой строки. Там никакой путь не состоит в том, чтобы генерировать эту строку строки журнала от удара? –  Jez 19.01.2013, 19:33

Теги

Похожие вопросы