Я случайно удалил / var / log / syslog, думая, что система автоматически воссоздает его (это не так).
я использовал touch /var/log/syslog
и перезапустили rsyslog, но система по-прежнему ничего не регистрирует. Я также перезапустил весь сервер безрезультатно.
выход ls -l /var/log/syslog
является
-rwxrwxr-x 1 root root 0 Oct 27 13:16 syslog
Как я могу заставить систему снова начать регистрацию в системном журнале?
ПРИМЕЧАНИЕ ДЛЯ БУДУЩИХ ЧИТАТЕЛЕЙ
перезапуск rsyslog действительно устранил проблему. Причина, по которой у меня это не сработало в первый раз, заключалась в том, что я создал файл "syslog", используя touch /var/log/syslog
.
Решение было удалить /var/log/syslog
. Тогда беги sudo service rsyslog restart
TL; DR; НЕ СОЗДАВАЙТЕ ФАЙЛ САМОСТОЯТЕЛЬНО. УДАЛИТЕ системный журнал, затем перезапустите rsyslog (который создаст для вас системный журнал). Задача решена.
rsyslog должен повторно создать файл (с правильными разрешениями) после перезапуска:
# mv /var/log/syslog /tmp/
# /etc/init.d/rsyslog restart
[ ok ] Restarting rsyslog (via systemctl): rsyslog.service.
# dir /var/log/syslog
-rw-r----- 1 root adm 327 Oct 27 13:28 /var/log/syslog
Возможно, попробуйте принудительно создать запись в журнале, чтобы убедиться, что она запущена:
# /usr/bin/logger -p0 foo
# tail /var/log/syslog
...
Oct 27 13:31:39 myserver root: foo
Несмотря на то, что файл был удален, дескриптор файла, который использовал rsyslog, вероятно, все еще был открыт и в него производилась запись. lsof
может быть использован для проверки этого, а также может сказать вам, какие файлы открыты процессом, если вы хотите увидеть, куда записываются журналы. pidof rsyslogd | xargs lsof -p
Это может быть проблема с SELinux. При прикосновении к файлу создается метка MAC, несовместимая с разрешениями MAC, необходимыми для элементов ведения журнала. Разрешение автозагрузки для создания файла прикрепляет правильную метку MAC. Даже если бы вы изменили права доступа к файлам (DAC), у вас все равно, вероятно, были бы проблемы.
Восстановить файл
бегать restorecon -v /yoursyslogdeletedfile
бегать systemctl reload rsyslog