我不小心删除了 /var/log/syslog,现在 rsyslog 不会记录任何内容

Nat*_*der 2 linux bash logging rsyslog ubuntu-16.04

我不小心删除了 /var/log/syslog,以为系统会自动重新创建它(它没有)。

我使用touch /var/log/syslog并重新启动了 rsyslog,但系统仍然没有记录任何内容。我也重新启动了整个服务器无济于事。

的输出 ls -l /var/log/syslog

-rwxrwxr-x 1 root root 0 Oct 27 13:16 syslog

如何让系统再次开始记录到 syslog?

给未来读者的注意事项

重新启动 rsyslog 确实解决了这个问题。第一次对我不起作用的原因是因为我使用touch /var/log/syslog.

解决方案是 delete /var/log/syslog。然后运行sudo service rsyslog restart

TLDR;不要自己创建文件。删除 syslog,然后重新启动 rsyslog(它将为您创建 syslog)。问题解决了。

Ser*_*ult 11

重新启动后,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
Run Code Online (Sandbox Code Playgroud)

也许尝试强制日志条目以确保它正在运行:

# /usr/bin/logger -p0 foo
# tail /var/log/syslog
...
Oct 27 13:31:39 myserver root: foo
Run Code Online (Sandbox Code Playgroud)


小智 5

即使文件已被删除,rsyslog 使用的文件句柄可能仍处于打开状态并正在写入。lsof可用于验证这一点,如果您想查看日志写入的位置,还可以告诉您进程打开了哪些文件。pidof rsyslogd | xargs lsof -p