/var/log/auth.log 停止记录身份验证错误

/var/log/auth.log 停止记录身份验证错误

正如标题所示,/var/log/auth.log停止记录身份验证错误。这一切都是从我不小心删除它开始的。然后我使用 touch 命令创建它并将所有者:组更改为syslog:adm。我已经rsyslog安装了。但它只是不记录任何东西。

有办法解决吗?操作系统是 Ubuntu Server 22.04.3 LTS。谢谢。

答案1

重新创建文件后,您是否重新启动rsyslog或执行了它?kill -HUP你可能应该。

在符合 POSIX 标准的系统中,在其他进程正在使用文件时删除该文件将使新进程无法访问该文件,但任何已打开该文件的进程(如rsyslog您的情况)将能够继续正常使用该文件。仅当打开该文件的所有进程都终止或关闭该文件后,文件系统驱动程序才会完成文件删除。

此行为可以实现诸如在使用时更新程序二进制文件之类的操作:使用旧版本二进制文件启动的任何进程都将继续使用旧版本,直到终止,而新进程将自动使用新版本启动。

副作用是任何已删除但仍打开的文件将继续使用磁盘空间,直到文件关闭(或保持它们打开的进程结束)。如果包含大量消息的日志文件在打开时被无意中删除,则此类文件可能会增长到任意大的大小。您可以看到此类已删除但仍打开的文件sudo lsof +L1

相关内容