侧边栏壁纸
  • 累计撰写 416 篇文章
  • 累计创建 65 个标签
  • 累计收到 154 条评论

目 录CONTENT

文章目录

Linux 清理登录日志

Z同学
2023-07-18 / 6 评论 / 5 点赞 / 5,340 阅读 / 1,029 字
温馨提示:
本文最后更新于 2023-07-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 介绍

在之前介绍过Linux的系统日志secure,btmp,wtmp这三个指令。https://zinyan.com/?p=456

而本篇内容,主要介绍如何清理Linux中缓存的各种登录日志。

2. 操作方式

在清理前,再顺便学习三个指令:

2.1 w,who,users指令

w:指令用于显示目前登录Linux系统的用户,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。

实例如下:

[root@iZuf ~]# w
 16:22:20 up 8 days,  7:22,  1 user,  load average: 0.13, 0.07, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    183.94.152.89    09:31    1.00s  0.04s  0.00s w

在上面的显示内容可以看到用户名,来源ip地址,登录时间等等信息。

还可以添加参数,进行过滤显示的内容,格式如下:

w [-fhlsuV][用户名称]
  • -f  开启或关闭显示用户从何处登入系统。
  • -h  不显示各栏位的标题信息列。
  • -l  使用详细格式列表,此为预设值。
  • -s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
  • -u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
  • -V  显示版本信息。

实例:

[root@iZuf ~]# w -f
 16:26:22 up 8 days,  7:26,  1 user,  load average: 0.00, 0.02, 0.00
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0     09:31    2.00s  0.05s  0.00s w -f
[root@iZuf ~]# w -f -h
root     pts/0     09:31    2.00s  0.05s  0.00s w -f -h

who:指令用于显示系统中有哪些使用者正在连接。

效果如下:

[root@iZuf ~]# who
root     pts/0        2023-07-18 09:31 (183.94.152.89)

和w指令一样,也可以添加参数,格式如下:(方括号里面的都是可选项)

who  [-Hus] 

参数说明:

  • -H: 不要显示标题列
  • -u : 不要显示使用者的动作/工作
  • -s : 使用简短的格式来显示

实例:

[root@iZuf ~]# who -H
NAME     LINE         TIME             COMMENT
root     pts/0        2023-07-18 09:31 (183.94.150.8)


[root@iZuf ~]# who -u
root     pts/0        2023-07-18 09:31   .        160605 (183.94.152.89)

[root@iZuf ~]# who -s
root     pts/0        2023-07-18 09:31 (183.94.152.89)

users:指令用于打印当前登录的用户名列表。

实例如下:

[root@iZuf ~]# users
root

总而言之,这三个指令的功能都很类似。都可以显示当前正在访问系统的账户。但是显示的内容维度和信息层度是不一样的。

2.2 清理btmp,wtmp 等缓存资料

如果直接说btmp和wtmp可能不太理解。我们换成指令就能理解了:

last: 阅读的wtmp文件,文件存储在:/var/log/wtmp。记录所有正确登录到系统的用户信息。

lastb:阅读的btmp文件,文件存储在:/var/log/btmp。记录所有登录失败的日志。

实例如下:(汇总了一下登录失败的错误ip的数量)

[root@iZuf ~]# lastb  | awk '{ print $3}' | sort | uniq -c | sort -n
      1 
      1 47.101.149.21
      1 Fri
      1 Sun
      2 144.126.230.226
      2 165.227.151.19
      6 80.94.92.46
     29 80.94.92.241
   5544 170.64.187.244
   7112 172.233.214.47
  27896 139.162.204.109

我们如果要清理lastb查询的信息。首先需要root权限。如果你的账户权限没有root权限,那么是无法清理的。

而清理方法很简单:

使用> filename 命令进行清理就可以了。

例如清理btmp文件:

[root@iZuf ~]# > /var/log/btmp

清理完毕后,再通过lastb进行查询时就是空的了:

[root@iZuf ~]# lastb  | awk '{ print $3}' | sort | uniq -c | sort -n
      1 
      1 Tue
[root@iZuf ~]# 

同样的清理wtmp 文件:

[root@iZuf ~]# > /var/log/wtmp

就可以清理了。

5

评论区