我正在 Debian Web 服务器上查看/var/log/auth.log
,它记录的最后一件事是:
Jul 2 21:09:01 h311 /USR/SBIN/CRON[25912]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jul 2 21:12:37 h311 systemd[1]: Reloading.
/var/log/syslog
大小为 0 字节。较旧的日志位于其档案中。
我试过删除它,重新启动服务。它再次被创建,大小为 0 字节。
我尝试在该服务器上安装 syslog-ng 之类的东西,并在玩了一段时间后将其删除。我安装的某些软件包可能会篡改配置,但我无法确切地告诉你。
该服务器上还有多个超级用户,因此可能是其他情况。
我应该检查并尝试做什么才能使日志记录再次正常工作?
答案1
正如评论中所指出的,您的系统正在使用 systemd 进行服务管理。 Systemd 是传统 SysVinit 的替代品。它还捆绑了许多其他东西,例如系统日志收集器。在这种情况下,要访问日志,您需要使用该journalctl
命令。
$ journalctl
如果您只想查看sshd
日志,可以通过过滤器:
$ journalctl -n 1 _COMM=sshd
-- Logs begin at Wed 2014-10-22 19:29:29 EDT, end at Fri 2014-10-24 09:05:09 EDT. --
Oct 24 09:05:09 gadget sshd[5800]: pam_unix(sshd:session): session closed for user phemmer
您可以通过将输出格式更改为以下来查看可用的过滤器字段verbose
:
$ journalctl -n 1 -o verbose
Fri 2014-10-24 09:05:09.533633 EDT [s=30566909a26443ffb7185d318ccc4cd6;i=3d5d;b=19dd64e325fd4577a78af1a73f005b6c;m=1e82168a3c;t=5062ad4a511bc;x=1fae374af8a7dbc3]
PRIORITY=6
_UID=0
_GID=0
_BOOT_ID=19dd64e325fd4577a78af1a73f005b6c
_MACHINE_ID=5288dcb47f9fed3ab946f54754305a4f
_HOSTNAME=gadget
_CAP_EFFECTIVE=1fffffffff
_TRANSPORT=syslog
SYSLOG_FACILITY=10
SYSLOG_IDENTIFIER=sshd
_COMM=sshd
_EXE=/usr/sbin/sshd
_SYSTEMD_OWNER_UID=1000
_SYSTEMD_SLICE=user-1000.slice
_PID=5800
_CMDLINE=sshd: phemmer [priv]
_SYSTEMD_CGROUP=/user.slice/user-1000.slice/session-3.scope
_SYSTEMD_SESSION=3
_SYSTEMD_UNIT=session-3.scope
MESSAGE=pam_unix(sshd:session): session closed for user phemmer
_SOURCE_REALTIME_TIMESTAMP=1414155909533633
回答您关于禁用 systemd 的评论。我不建议这样做。您的发行版正在转向 systemd,而删除系统的核心组件可能会让您的生活变得极其困难。
可以仅禁用日志日志,并使用传统的系统日志守护进程,而不会造成太大的痛苦,但我建议在决定不使用日志之前先学习如何使用它。不应该轻易违背惯例。