
Я случайно удалил /var/log/secure, пытаюсь создать его заново, но он по-прежнему остается пустым после нескольких подключений.
На сервере, где все работает, с помощью ls -l у меня есть:
-rw-------. root:root /var/log/secure
а на сервере, где это не работает, с ls -l у меня есть:
-rw------- root:root /var/log/secure
Единственное отличие — это права с «.» в конце строки, которых нет на сервере, где это не работает.
Есть идеи ?
решение1
Итак, проблема в том, что ваш процесс syslog все еще держит удаленный файл открытым. Вам нужно перезапустить ваш процесс syslog. По умолчанию это rsyslog в centos
service rsyslog restart
Я уверен, что вы также можете увидеть его открытым как удаленный, если попробуете что-то вроде
lsof | grep '/var/log/secure'
Это даст вам pid/имя процесса, который держит его открытым. Например
[[email protected] ~]# lsof | grep '/var/log/secure'
rsyslogd 977 root 5w REG 253,0 585555 2756243 /var/log/secure
Итак, процесс rsyslogd держит его открытым.
[[email protected] ~]# ps aux | grep 977
root 977 0.0 0.0 249856 5916 ? Sl 2014 8:25 /sbin/rsyslogd -i /var/run/syslogd.pid -