# 命令--14.痕迹

​ 系统中有一些重要的痕迹日志文件,如/var/log/wtmp/var/run/utmp/var/log/btmp/var/log/lastlog等日志文件,如果你用vim打开这些文件,你会发现这些文件是二进制乱码。这是由于这些日志中保存的是系统的重要登录痕迹,包括某个用户何时登录了系统,何时退出了系统,错误登录等重要的系统信息。这些信息要是可以通过vim打开,就能编辑,这样痕迹信息就不准确,所以这些重要的痕迹日志,只能通过对应的命令来进行查看。

# 1.w命令

w命令是显示系统中正在登陆的用户信息的命令,这个命令查看的痕迹日志是/var/run/utmp。

这个命令的基本信息如下:

  • 命令名称:w
  • 英文原意:Show who is logged on and what they are doing.
  • 所在路径:/usr/bin/w
  • 执行权限:所有用户。
  • 功能描述:显示登录用户,和他正在做什么。
[root@xiaoshaozi ~]# w
 10:46:00 up 37 days,  1:24,  2 users,  load average: 0.00, 0.01, 0.05
#系统时间  持续开机时间			登陆用户	系统在1分钟,5分钟,15分钟前的平均负载
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    220.180.63.118   10:45    0.00s  0.00s  0.00s w
root     pts/1    220.180.63.118   10:45    0.00s  0.00s  0.00s top

第一行信息,内容如下:

内容 说明
10:46:00 系统时间
up 37 days, 1:24 持续开机时间
2 users 当前登录了两个用户
load average: 0.00, 0.01, 0.05 系统在之前1分钟、5分钟、15分钟的平均负载。
如果CPU是单核的,则这个数值超过1就是高负载;
如果CPU是四核的,则这个数值超过4就是高负载
(这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器CPU的核数)

第二行信息,内容如下:

内容 说明
USER 当前登陆的用户
TTY 登陆的终端:
tty1-6:本地字符终端(alt+F1-6切换)
tty7:本地图形终端(ctrl+alt+F7切换,必须安装启动图形界面)
pts/0-255:远程终端
FROM 登陆的IP地址,如果是本地终端,则是空
LOGIN@ 登陆时间
IDLE 用户闲置时间
JCPU 所有的进程占用的CPU时间
PCPU 当前进程占用的CPU时间
WHAT 用户正在进行的操作

# who命令

who命令和w命令类似,用于查看正在登陆的用户,但是显示的内容更加简单,也是查看/var/run/utmp日志。

[root@xiaoshaozi ~]# who
root     pts/0        2023-12-20 10:45 (220.180.63.118)
root     pts/1        2023-12-20 10:45 (220.180.63.118)
#用户名	登陆终端		登陆时间(来源IP)

# last命令

last命令是查看系统所有登陆过的用户信息的,包括正在登陆的用户和之前登陆的用户。这个命令查看的是/var/log/wtmp痕迹日志文件。

[root@xiaoshaozi ~]# last
root     pts/1        220.180.63.118   Wed Dec 20 10:45   still logged in   
root     pts/0        220.180.63.118   Wed Dec 20 10:45   still logged in   
root     pts/1        220.180.63.118   Tue Dec 19 17:39 - 19:40  (02:01)    
root     pts/0        220.180.63.118   Tue Dec 19 17:39 - 19:40  (02:01)    
root     pts/1        220.180.63.118   Tue Dec 19 17:38 - 17:39  (00:01)    
root     pts/0        220.180.63.118   Tue Dec 19 17:38 - 17:39  (00:01)    
root     pts/1        220.180.63.118   Tue Dec 19 17:18 - 17:38  (00:19)    
root     pts/0        220.180.63.118   Tue Dec 19 17:18 - 17:38  (00:19) 
#用户名   终端号		  来源IP地址		登陆时间	-	退出时间
reboot   system boot  3.10.0-957.21.3. Wed Oct 21 21:19 - 09:19 (1117+12:00)
#系统重启信息记录

# lastlog命令

lastlog命令是查看系统中所有用户最后一次的登陆时间的命令,他查看的日志是/var/log/lastlog文件。

[root@xiaoshaozi ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/1    220.180.63.118   三 12月 20 10:45:58 +0800 2023
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
zs             pts/3    36.5.59.80       日 12月 17 22:19:52 +0800 2023
mysql                                      **从未登录过**
nginx                                      **从未登录过**
rabbitmq                                   **从未登录过**
redis                                      **从未登录过**
influxdb                                   **从未登录过**
tss                                        **从未登录过**
apache                                     **从未登录过**
xiaoshaozi           pts/0               四 11月 30 08:51:50 +0800 2023
rpc                                        **从未登录过**
rpcuser                                    **从未登录过**
nfsnobody                                  **从未登录过**

# lastb命令

lastb命令是查看错误登陆的信息的,查看的是/var/log/btmp痕迹日志:

[root@xiaoshaozi ~]# lastb
root     ssh:notty    192.168.1.102    Wed Dec 20 11:17 - 11:17  (00:00)    
root     ssh:notty    192.168.1.102    Wed Dec 20 11:17 - 11:17  (00:00)    
root     pts/0                         Wed Dec 20 11:13 - 11:13  (00:00)  

btmp begins Mon Dec  4 19:27:12 2023
#错误登陆用户		终端	登录ip			尝试登陆的时间
更新时间: 2024年1月5日星期五下午2点08分