Вход не остановит на файле журнала после переименования/перемещения его …, как я останавливаю его?

Взгляните на практическое руководство, которое я записал несколько лет назад. Хотя это не описывает начальную загрузку BSD, это действительно описывает весь процесс в довольно большом количестве деталей. Возможно, это помогает Вам в обнаружении, что пошло не так, как надо.

2
задан 12 April 2010 в 20:16
4 ответа

iptables использует средство системного журнала для входа. Отправьте SIGHUP в syslogd, ksyslogd, или rsyslogd, чтобы закрыть и вновь открыть файлы журнала.

6
ответ дан 3 December 2019 в 09:00
  • 1
    Спасибо за простое решение. Я переименовал свой журнал брандмауэра, затем kill -HUP 1660 (1660 = pid rsyslogd), и затем он начал писать новый журнал брандмауэра. –  Jake Wilson 12 April 2010 в 20:25

Запись файла журнала не выполняется iptables. iptables, просто регистрируется к средству системного журнала ядра, и это до Вашей программы системного журнала для записи этого в файл журнала. При перемещении файла Вы по существу просто переименовываете его с точки зрения файловой системы. Ваш демон системного журнала понятия не имеет, что Вы сделали это и счастливо продолжаете писать в его открытый дескриптор файла. То, что необходимо сделать, перезагрузить демона системного журнала так, чтобы это вновь открылось, файл на основе его файловой системы соединяют каналом, и начинает писать в новый файл. Большинство демонов системного журнала поддерживает ловлю Сигнала HUP, чтобы сделать это и не требует полного перезапуска.

Необходимо использовать программу, такую как logrotate, который предварительно установлен с большинством дистрибутивов, для обработки вращения для Вас. Это умно об этом и поддерживает действия, такие как сигнальные демоны. Вам не нужно к сценарию самокрутки с этой целью.

2
ответ дан 3 December 2019 в 09:00
  • 1
    I' m, не пытаясь прокрутить мое собственное. Вы неправильно читаете. –  Jake Wilson 12 April 2010 в 20:22

Ваши файлы конфигурации для logrotate должны включать постповорачивать раздел, который перезагружает или системный журнал SIGHUPs или rsyslog или эквивалентный.

В моей системе, /etc/logrotate.d/rsyslog содержит, среди прочего:

    postrotate
            reload rsyslog >/dev/null 2>&1 || true
    endscript
2
ответ дан 3 December 2019 в 09:00
  • 1
    как это помогает мне? –  Jake Wilson 12 April 2010 в 20:23
  • 2
    @Jakobud: необходимо проверить конфигурацию. Это должно заботиться об уведомлении системного журнала, что это должно переключиться на новые файлы журнала после they' ve, повернутый. Это должно сделать это автоматически без Вас бывший должный вмешаться. Мой ответ является попыткой привести Вас к долгосрочному решению. –  Paused until further notice. 12 April 2010 в 20:46
  • 3
    @Jakobud: Вашей проблемой является общая. Dennis' решением являются шоу общее решение Вашей проблемы. Эта конфигурация должна обычно существовать, но в Вашей системе, возможно, была удалена конфигурация. Это предотвратило бы Ваш файл журнала на 12 ГБ во-первых. Журналы Iptables к системному журналу и вращение журнала обрабатываются logrotate. После вращения журнала Logrotate отправит ПЕРЕЗАГРУЗКУ/СИГНАЛ HUP в системный журнал, и logdata будет теперь записан в недавно созданные файлы журнала. Я также настоятельно рекомендую ' compress' опция, и удостоверяется Вы don' t поворачивают те файлы журнала из существования. –  Stefan Lasiewski 26 April 2010 в 22:57

Вы можете сделать копию своего файла системного журнала:

cp -abf sys.log sys.log_bak

И переместить копию в любое желаемое место:

mv sys. log_bak /path/desired/sys.log_bak

И очистите содержимое исходного файла:

cat / dev / null> sys.log

После этого ваш исходный файл будет продолжать получать системные журналы; заменять его другим файлом не нужно.

-2
ответ дан 3 December 2019 в 09:00

Теги

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