21 Linux高级篇-日志管理

21 Linux高级篇-日志管理

  1. 《鸟哥的Linux私房菜 基础学习篇 第四版》1
  2. 《鸟哥的Linux私房菜 服务器架设篇 第三版》2
  3. 《韩顺平_2021图解Linux全面升级》3

21.1 系统常用的日志

  日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。日志对于系统安全来说很重要,它记录了系统每天发生的各种事情,可以通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。也就是说,日志就是用来记录系统的重大事件。

绝大多数系统日志文件保存在目录/var/log/下(如下图),下表给出了其中最常见的日志:

图21-1 常见的日志

boot.log:与系统启动相关的日志。
message:存放一些重要的信息。
mysqld.log:和数据库有关的日志。
secure:与安全相关的日志。
vmware-install.log:与vmware安装相关的日志。
yum.log:与yum相关的日志。

表21-1 常见的日志(标红的为必须记住)
日志文件说明
/var/log/boot.log系统启动日志。
/var/log/cron记录与系统定时任务相关的日志。
/var/log/cups/记录打印信息的日志。
/var/log/dmesg记录了系统在开机时内核自检的信息。也可以使用dmesg命令直接查看内核自检信息。
/var/log/btmp记录错误登录的日志,二进制文件。不能直接用Vi查看,而要使用lastb命令查看。
命令为:[root@localhost log]#lastb
/var/log/lastlog记录系统中所有用户最后一次的登录时间的日志,二进制文件。使用lastlog命令查看。
/var/Iog/mailog记录邮件信息的日志。
/var/log/message记录系统重要消息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息。
如果系统出现问题,首先要检查的应该就是这个日志文件。
/var/log/secure记录验证和授权方面的信息。
只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,
甚至添加用户和修改用户密码都会记录在这个日志文件中。
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件,二进制文件。使用last命令查看。
/var/tun/ulmp记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。
这个文件不能用Vi查看,而要使用w、who、users等命令查看。

下面展示一个应用案例:
【案例1】使用Xshell登录root用户,第一次使用错误的密码,第二次使用正确的密码,看看在日志文件/var/log/secure里有没有记录相关信息。

# 首先清空/var/log/secure的原有内容
[root@CentOS76 ~]# echo '' > /var/log/secure
[root@CentOS76 ~]# cat /var/log/secure

[root@CentOS76 ~]# exit
登出

Connection closed.

Disconnected from remote host(CentOS-any) at 07:45:25.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.204.131:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last failed login: Mon Aug 21 07:45:35 CST 2023 from 192.168.204.1 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Aug 21 07:43:58 2023 from 192.168.204.1


# 输入一次错误密码、一次正确密码后,再次查看/var/log/secure
[root@CentOS76 ~]# cat /var/log/secure

Aug 21 07:45:24 CentOS76 sshd[14914]: pam_unix(sshd:session): session closed for user root
Aug 21 07:45:33 CentOS76 unix_chkpwd[15030]: password check failed for user (root)
Aug 21 07:45:33 CentOS76 sshd[15028]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.204.1  user=root
Aug 21 07:45:33 CentOS76 sshd[15028]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Aug 21 07:45:35 CentOS76 sshd[15028]: Failed password for root from 192.168.204.1 port 56707 ssh2
Aug 21 07:45:37 CentOS76 sshd[15028]: Accepted password for root from 192.168.204.1 port 56707 ssh2
Aug 21 07:45:37 CentOS76 sshd[15028]: pam_unix(sshd:session): session opened for user root by (uid=0)
# 可以看到上述45:35是Failed password,45:37是Accepted password。

21.2 日志管理服务rsyslogd

  那既然日志不仅繁杂而且还很重要,究竟是系统中哪个进程负责记录这些日志呢?CentOS6.x的日志服务(后台进程)是syslogd,CentOS7.6日志服务(后台进程)是rsyslogdrsyslogd功能更强大,并且rsyslogd的使用、日志文件的格式,和syslogd服务兼容的。

# 查询Linux中的rsyslogd服务是否启动
ps aux | grep "rsyslog" | grep -v "grep"
# 查询rsyslogd服务的自启动状态
systemctl list-unit-files | grep rsyslog


# 下面是代码实例
# 查询Linux中的rsyslogd服务是否启动
[root@CentOS76 ~]# ps aux | grep "rsyslog"
root       1232  0.0  0.0 222740  5940 ?        Ssl  8月20   0:02 /usr/sbin/rsyslogd -n
root      15357  0.0  0.0 112828   972 pts/0    S+   08:04   0:00 grep --color=auto rsyslog
# 再继续找出上述结果中不包含grep的行
[root@CentOS76 ~]# ps aux | grep "rsyslog" | grep -v "grep"  # grep的反向查找
root       1232  0.0  0.0 222740  5940 ?        Ssl  8月20   0:02 /usr/sbin/rsyslogd -n
# 查询rsyslogd服务的自启动状态
[root@CentOS76 ~]# systemctl list-unit-files | grep "rsyslog"
rsyslog.service                               enabled 

21.2.1 *日志记录原理

  (*号表示本节很重要)那现在有了后台进程rsyslogd来自动记录日志,那么谁来规定这个所记录日志的格式呢?并且,谁又来控制rsyslogd每天都能自动进行日志轮替呢?也就是如下图所示:

轮替记录
单次记录
include
每天
定时调度
记录所有的日志
定时调度
crond后台进程
logrotate负责轮替
/etc/cron.daily/目录下
rsyslogd后台进程
/etc/rsyslog.conf文件
规定rsyslogd记录的日志类型和级别
/etc/logrotate.conf文件
全局的日志轮替规则
某个文件的日志轮替规则
/etc/logrotate.d/目录
单个文件的日志轮替规则
/var/log/目录
存放所有的日志
图21-2 日志记录原理
  1. 文件/etc/rsyslog.conf规定了rsyslogd记录的日志类型和级别。
  2. 文件/etc/logrotate.conf规定了全局的日志轮替规则以及某个文件的日志轮替规则。
  3. 目录/etc/logrotate.d/整个都被“include”到了文件/etc/logrotate.conf里。

上述三个文件合力控制了后台进程rsyslogd如何来记录日志。此时,再使用重复任务调度进程crond,每天调度一次logrotate,就可以实现日志轮替了。
注:下一大节再详细介绍“日志轮替”。

21.2.2 配置文件/etc/rsyslog.conf

# 查看/etc/rsyslog.conf文件的内容
[root@CentOS76 ~]# cat /etc/rsyslog.conf 
# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
#$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark  # provides --MARK-- message capability

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514


#### GLOBAL DIRECTIVES ####

# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on

# File to store the position in the journal
$IMJournalStateFile imjournal.state


#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log


# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###

  上一小节提到配置文件/etc/rsyslog.conf规定了rsyslogd记录的日志类型和日志级别。那么这里中的含义是什么呢?从#### RULES ####那一栏中可以看到,配置日志时的格式为:

# 一般格式
*.*                   日志文件
# 例子
mail.*      -/var/log/maillog   # 将日志类型为mail的所有日志信息,无论什么日志级别,都记录到文件-/var/log/maillog中去。
*.emerg           :omusrmsg:*   # 无论是什么日志类型,只要日志级别是emerg的日志信息,都记录到相应文件中去。
local7.*    /var/log/boot.log   # 将日志类型是local7,无论是什么日志级别,都记录到文件/var/log/boot.log中去。

其中第一个*代表日志类型,第二个*代表日志级别。常用的“日志类型”和“日志级别”如下表所示:

表21-2 日志类型和日志级别
日志类型含义日志级别含义
*表示所有类型*表示所有级别
authpam产生的日志debug 有调试信息的,日志通信最多
authprivssh、ftp等登录信息的验证信息info 一般信息日志,最常用
corn时间任务相关notice 最具有重要性的普通条件的信息
kern内核warning警告级别
lpr打印err 错误级别,阻止某个功能或者模块不能正常工作的信息
mail邮件crit 严重级别,阻止整个系统或者整个软件不能正常工作的信息
mark(syslog)-rsyslog服务内部的信息,时间标识alert 需要立刻修改的信息
news新闻组emerg 内核崩溃等重要信息
user用户程序产生的相关信息none 什么都不记录
uucpunix to nuix copy主机之间相关的通信从上到下,日志级别从低到高,记录信息越来越少
local 1-7自定义的日志设备

21.2.3 日志文件格式

  那根据配置文件中的文件类型和文件级别,rsyslogd后台进程就写下了相应的日志文件。但写下来不是目的,得让我们人类看懂才行啊,换句话说,这些日志中都包含了哪些内容呢?下面就来说明,由日志服务rsyslogd记录的日志文件,日志文件的格式包含以下4列:

  1. 事件产生的时间
  2. 产生事件的服务器的主机名
  3. 产生事件的服务名或程序名
  4. 事件的具体信息

比如现在就拿/var/log/secure日志举例,来分析一下这个日志中的内容:

[root@CentOS76 ~]# cat /var/log/secure

Aug 21 07:45:24 CentOS76 sshd[14914]: pam_unix(sshd:session): session closed for user root
Aug 21 07:45:33 CentOS76 unix_chkpwd[15030]: password check failed for user (root)
Aug 21 07:45:33 CentOS76 sshd[15028]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.204.1  user=root
Aug 21 07:45:33 CentOS76 sshd[15028]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Aug 21 07:45:35 CentOS76 sshd[15028]: Failed password for root from 192.168.204.1 port 56707 ssh2
Aug 21 07:45:37 CentOS76 sshd[15028]: Accepted password for root from 192.168.204.1 port 56707 ssh2
Aug 21 07:45:37 CentOS76 sshd[15028]: pam_unix(sshd:session): session opened for user root by (uid=0)

日志/var/log/secure中记录的是用户验证和授权方面的信息:

  • 第一列:Aug 21 07:45:24,显然是记录了事件产生的时间。
  • 第二列:CentOS76,记录了产生事件的服务器的主机名。
  • 第三列:sshd[14914],记录了产生事件的服务名。
  • 第四列:后面记录的就是事件的具体信息。

下面展示一个实际案例:
【案例1】在/etc/rsyslog.conf中添加一个日志文件/var/log/lyl.log,记录所有类型、所有级别的日志信息。然后重启、登录,查看sshd服务相关事件是否被记录下来。

[root@CentOS76 ~]# vim /etc/rsyslog.conf
########################################
# 在文件中添加如下代码:
# 增加自定义的日志
*.*    /var/log/lyl.log
########################################
[root@CentOS76 ~]# > /var/log/lyl.log       # 创建文件,当然不创建也行
[root@CentOS76 ~]# cat /var/log/lyl.log     # 查看当前文件内容,显然为空
[root@CentOS76 ~]# reboot

# 重启后立即查看日志信息
[root@CentOS76 ~]# cat /var/log/lyl.log | grep sshd
Aug 21 08:39:49 CentOS76 sshd[1198]: Server listening on 0.0.0.0 port 22.
Aug 21 08:39:49 CentOS76 sshd[1198]: Server listening on :: port 22.
Aug 21 08:40:11 CentOS76 sshd[1871]: Accepted password for root from 192.168.204.1 port 58895 ssh2
Aug 21 08:40:11 CentOS76 sshd[1871]: pam_unix(sshd:session): session opened for user root by (uid=0)

注:做完该案例先别急着删,下一节案例“自定义日志轮替”还会用到。

21.3 日志轮替

  前面在介绍日志记录原理时提到了“日志轮替”。通俗来说,“日志轮替”就是每隔一段时间(每天/每周/每月)或者是当日志文件足够大了之后,就把旧的日志文件移动并改名,同时建立新的空日志文件来记录新的内容,当旧日志文件数量足够多时还要删除最旧的日志,比如经常听说“小区监控一般保存一个月左右”,就类似于这种情况。比如下图就给出了日志轮替的示意图:

轮替后
轮替前
自动改名
自动改名
自动改名
secure(新增)
secure.1
secure.2
secure.3
secure
secure.1
secure.2
secure.3(删除)
注:假设日志最大保存个数设置为4
图21-3 日志轮替示意图

  上图在发生日志轮替时,日志文件会自动改名,但也有无需改名的配置,那同样也有控制轮替周期的参数。在CentOS7中,这些如何进行轮替的配置参数都存放在/etc/logrotate.conf文件中,然后通过/etc/cron.daily/目录下的logrotate进行日志轮替管理:

比如现在在/etc/logrotate.conf文件中修改/var/log/secure参数:

  1. 没有“dateext”参数:和上图所示情况相同。
  2. 有“dateext”参数:那么日志会用日期来作为日志文件的后缀,例如“secure-20201010”。这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志个数,删除多余的日志文件即可。

21.3.1 配置文件/etc/logrotate.conf & /etc/logrotate.d/

  规定日志轮替的配置文件有以下两个:

  1. 文件/etc/logrotate.conf:为logrotate的全局配置文件,规定了全局的日志轮替策略/规则,也可以单独给某个日志文件指定策略,若没指定就会采用默认策略。
  2. 目录/etc/logrotate.d下的所有文件:每个文件都单独给某个日志文件指定轮替策略。但该目录中的文件都会被“include”到上面的/etc/logrotate.conf配置文件中。

/etc/logrotate.conf文件内容:

# 下面展示/etc/logrotate.conf的内容,并附上中文注释
[root@CentOS76 ~]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly,每周对日志文件进行一次轮替
weekly

# keep 4 weeks worth of backlogs,共保存4份日志文件,当建立新的日志文件时,旧的将会被删除
rotate 4

# create new (empty) log files after rotating old ones,创建新的空的日志文件,在日志轮替后
create

# use date as a suffix of the rotated file,使用日期作为日志轮替文件的后缀
dateext

# uncomment this if you want your log files compressed,日志文件是否压缩。如果取消注释,则日志会在转储的同时进行压缩
#compress

# RPM packages drop log rotation information into this directory
# /etc/logrotate.d/目录中所有的配置也会被读取进来,该目录一般存放某文件的单独轮替规则,和写在下面等价。
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
# 下面是单独设置,优先级更高。
# 给/var/log/wtmp单独设置的轮替规则
/var/log/wtmp {
    monthly                 # 每月对日志文件进行一次轮替
    create 0664 root utmp   # 建立的新日志文件,权限是0664,所有者是root,所属组是utmp组
    minsize 1M              # 日志文件最小轮替大小是1MB。也就是日志一定要超过1MB才会轮替,否则就算时间达到一个月,也不进行日志转储。
    rotate 1                # 仅保留一个日志备份。也就是只有wtmp和wtmp.1日志保留而已
}
# 给/var/log/btmp单独设置的轮替规则
/var/log/btmp {
    missingok               # 如果日志不存在,则忽略该日志的警告信息
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

/etc/logrotate.d/目录内容:
比如下面/etc/logrotate.d/bootlog就记录了/var/log/boot.log的日志轮替规则:

[root@CentOS76 ~]# ls /etc/logrotate.d/
bootlog  cups       glusterfs    libvirtd       mysql  ppp     samba  syslog          yum
chrony   firewalld  iscsiuiolog  libvirtd.qemu  numad  psacct  sssd   wpa_supplicant
[root@CentOS76 ~]# cat /etc/logrotate.d/bootlog 
/var/log/boot.log
{
    missingok
    daily
    copytruncate
    rotate 7
    notifempty
}

日志轮替参数说明:
  那上面这两个日志轮替配置文件中的配置是什么意思呢?也就是下表给出的日志轮替参数说明:

图21-2 日志轮替参数说明
参数参数说明
daily日志的轮替周期是每天
weekly日志的轮替周期是每周
monthly日志的轮替周期是每月
rotate 数字保留的日志文件的个数。0指没有备份。
compress日志轮替时,旧的日志进行压缩。
create mode owner group建立新日志,同时指定新日志的权限与所有者和所属组。
mail address当日志轮替时,输出内容通过邮件发送到指定的邮件地址。
missingok如果日志不存在,则忽略该日志的警告信息。
notifempty如果日志为空文件,则不进行日志轮替。
minsize 大小日志轮替的最小值。也就是日志一定要达到这个最小值才会轮替,否则就算时间达到也不轮替。
size 大小日志只有大于指定大小才进行日志轮替,而不是按照时间轮替。
dateext使用日期作为日志轮替文件的后缀。
sharedscripts在此关键字之后的脚本只执行一次。
prerotate/endscript在日志轮替之前执行脚本命令。
postrotate/endscript在日志轮替之后执行脚本命令。

下面展示一个应用案例:
【案例1】将上一大节最后的案例/var/log/lyl.log日志加入日志轮替。

方法一:直接在/etc/logrotate.conf配置文件中写入该日志的轮替策略。
方法二:【推荐】/etc/logrotate.d/目录中新建立该日志的轮替策略文件。推荐使用该方法,因为系统中需要轮替的日志非常多,如果全都直接写入/etc/logrotate.conf配置文件,那么这个文件的可管理性就会非常差,不利于文件的维护。

注:具体轮替的效果可以参考/var/log下的boot.log情况

[root@CentOS76 ~]# vim /etc/logrotate.d/lyllog
#################################
# 在文件中添加如下内容,以规定轮替策略:
/var/log/lyl.log {
    missingok       # 如果日志不存在,则忽略该日志的警告信息。
    daily           # 每天轮替一次
    copytruncate    # 拷贝截断
    rotate 7        # 最多保留7份日志
    notifempty      # 如果日志为空文件,则不进行日志轮替。
}
#################################
[root@CentOS76 ~]# ll /etc/logrotate.d/
总用量 72
-rw-r--r--. 1 root root  91 930 2020 bootlog
-rw-r--r--. 1 root root 160 919 2018 chrony
-rw-r--r--. 1 root root  71 930 2020 cups
-rw-r--r--. 1 root root  93 101 2020 firewalld
-rw-r--r--. 1 root root 758 102 2020 glusterfs
-rw-r--r--. 1 root root 172 930 2016 iscsiuiolog
-rw-r--r--. 1 root root 165 1014 2020 libvirtd
-rw-r--r--. 1 root root 142 1014 2020 libvirtd.qemu
-rw-r--r--. 1 root root 302 821 10:17 lyllog
-rw-r--r--. 1 root root 972 413 2019 mysql
-rw-r--r--. 1 root root 106 411 2018 numad
-rw-r--r--. 1 root root 136 228 2020 ppp
-rw-r--r--. 1 root root 408 83 2017 psacct
-rw-r--r--. 1 root root 115 1014 2020 samba
-rw-r--r--. 1 root root 237 1016 2020 sssd
-rw-r--r--. 1 root root 224 1013 2020 syslog
-rw-r--r--. 1 root root 100 1031 2018 wpa_supplicant
-rw-r--r--. 1 root root 103 102 2020 yum
# 于是后面lyl.log也就会每天自动轮替了,有点类似于下面的boot.log
[root@CentOS76 ~]# ll /var/log | grep boot
-rw-------. 1 root   root     28520 821 10:09 boot.log
-rw-------. 1 root   root     82271 727 10:13 boot.log-20230727
-rw-------. 1 root   root     14399 820 17:35 boot.log-20230820

21.3.2 可执行文件/etc/cron.daily/logrotate

  日志轮替之所以可以在指定的时间备份日志,是依赖系统定时任务crond。在目录/etc/cron.daily/下就会发现可执行文件logrotate,这个依赖定时任务执行的可执行文件就是日志轮替的关键。

[root@CentOS76 ~]# ll /etc/cron.daily/
总用量 12
-rwx------. 1 root root 219 41 2020 logrotate
-rwxr-xr-x. 1 root root 618 1030 2018 man-db.cron
-rwx------. 1 root root 208 411 2018 mlocate

至此,前面的“日志记录原理”一节的图便介绍完毕。

21.4 内存日志

  最后,来看一下“内存日志”。Linux系统中有一部分日志是实时变化的,会先写到内存中,而不是先写到文件中去,这部分日志就被称为“内存日志”,如与内核相关的日志。注意,重启后内存日志会被清空!journalctl指令可以查看内存日志,下面是journalctl的常用指令:

journalctl                                  # 查看全部
journalctl -n 3                             # 查看最新3条
journalctl --since 19:00 --until 19:10:10   # 查看起始时间到结束时间的日志可加日期
journalctl -p err                           # 报错日志
journalctl -o verbose                       # 日志详细内容
journalctl _PID=1245 _COMM=sshd             # 查看包含这些参数的日志(在详细日志查看)
journalctl | grep sshd                      # 查找sshd相关的日志

下面展示一个应用案例:
【案例1】使用journalctl | grep sshd来查看系统重启前后,内存日志是否有变化。

[root@CentOS76 ~]# journalctl | grep sshd
821 10:09:26 CentOS76 sshd[1195]: Server listening on 0.0.0.0 port 22.
821 10:09:26 CentOS76 sshd[1195]: Server listening on :: port 22.
821 10:10:28 CentOS76 sshd[1886]: Accepted password for root from 192.168.204.1 port 62073 ssh2
821 10:10:29 CentOS76 sshd[1886]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@CentOS76 ~]# reboot

[root@CentOS76 ~]# journalctl | grep sshd
821 10:46:25 CentOS76 sshd[1190]: Server listening on 0.0.0.0 port 22.
821 10:46:25 CentOS76 sshd[1190]: Server listening on :: port 22.
821 10:46:39 CentOS76 sshd[1729]: error: Received disconnect from 192.168.204.1 port 63284:0:  [preauth]
821 10:46:39 CentOS76 sshd[1729]: Disconnected from 192.168.204.1 port 63284 [preauth]
821 10:46:40 CentOS76 sshd[1733]: Accepted password for root from 192.168.204.1 port 63287 ssh2
821 10:46:40 CentOS76 sshd[1733]: pam_unix(sshd:session): session opened for user root by (uid=0)

  1. 《鸟哥的Linux私房菜 基础学习篇 第四版》 ↩︎

  2. 《鸟哥的Linux私房菜 服务器架设篇 第三版》 ↩︎

  3. 《韩顺平_2021图解Linux全面升级》 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虎慕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值