Отключение syslogd во FreeBSD

2568
Lily Hahn

Я использую FreeBSD на очень маленькой виртуальной машине с объемом около 1,5 ГБ. Я бы хотел отключить, syslogdчтобы сэкономить место на диске, но в нем нет записи /etc/rc.conf. service -eпоказывает, что syslogdдействительно работает. Как отключить / удалить его?

3

3 ответа на вопрос

2
Igor Hatarist

Останови демона:

/etc/rc.d/syslogd stop 

Добавить строку к /etc/rc.conf:

syslogd_enable="NO" 
2
EhevuTov

Добавить строку к /etc/rc.conf:

syslogd_enable = "НЕТ"

Останови демона:

/etc/rc.d/syslogd stop

Тем не менее, я бы не рекомендовал останавливать syslogd. Вместо этого я рекомендую изменить размер и частоту вращения журнала, отредактировав /etc/newsyslog.confфайл конфигурации. Это очень модифицируемо. Вы можете закомментировать сервисы, за которыми вы не хотите подписываться, с помощью a #в начале строки, или изменить:

  • count для максимального количества файловых архивов
  • size для размера каждого архива
  • when когда вы хотите повернуть

Есть несколько вариантов, которые, я думаю, могли бы соответствовать вашей ситуации. Например, если вы хотите сохранить максимальный размер в килобайтах для своих журналов, вы можете сделать это. Конечно, вы можете сэкономить несколько килобайт для журналов :-Прочитайте, чтобы узнать man newsyslog.confбольше о том, как правильно подобрать необходимый размер системы журналов.

2
Matt Simerson

Ответ Игоря хороший, но я бы хотел рассказать о нем больше для нынешних и будущих гостей поисковой системы. Чтобы полностью отключить syslogd, нужно немного больше:

Полностью отключить syslogd

остановите системный журнал

service syslogd onestop

  • Использует service команду, которая была у нас с FreeBSD 7.3 (2012). Он работает для служб в /etc/rc.d, а также /usr/local/etc/rc.d и более удобен для работы с пальцами.
  • Использование onestopвместо stopостановит syslogd, даже если эти команды не работают.

отключить syslogd

sysrc syslogd_enable=NO

Эта команда делает именно то, что Игорь инструктирует, и добавляет строку в /etc/rc.conf, которая предотвращает запуск syslogd в будущем. Sysrc появился во FreeBSD 9.2 (2015). Раньше то же самое обычно делали с echo syslogd_enable=NO >> /etc/rc.conf.

отключить журнал новостей при загрузке

sysrc newsyslog_enable=NO

Эта команда предотвращает newsyslog запуск во время загрузки.

отключить новостной журнал во время выполнения

sed -i .bak -e '/^0.*newsyslog/ s/^0/#0/' /etc/crontab

Эта команда sed ищет строку, которая начинается с 0 и содержит слово newsyslog. Затем он вставляет # перед нулем, отключая задачу cron newsyslog. Теперь вы не будете получать надоедливые электронные письма от cron с жалобами на то, что:

newsyslog: файл pid не существует: /var/run/syslog.pid


Является ли отключение syslogd хорошей идеей?

EhevuTov очень хорошо отмечает, что отключение syslogd для экономии места на диске, вероятно, не лучшая причина. Однако есть несколько очень веских причин, по которым можно отключить syslogd.

  1. Запуск FreeBSD в тюрьме с процессом, который обрабатывает свои собственные журналы (squid, nginx и т. Д.). Если ничто в тюрьме не использует syslogd, то нет смысла его запускать.
  2. Выполнение тысяч джейлов на хосте FreeBSD может сделать другую архитектуру системного журнала более разумной (сброс сокетов журнала в каждую тюрьму (см. Syslogd -l)).
  3. № 2 подходит даже для нескольких тюрем, когда требуется централизованное ведение журнала. Это позволяет избежать необходимости в каждой тюрьме с @hostсинтаксисом для пересылки.
  4. Числа 2 и 3 особенно важны, если вы также направляете все журналы во внешние системы для индексации и архивирования. Переадресация системного журнала в конечном итоге усложняет эти варианты использования.
  5. Использование другого демона системного журнала. Если вы используете альтернативный демон syslog, есть большая вероятность, что вы захотите полностью отключить системный журнал FreeBSD и все его предположения и ожидания .