原文
last 命令用于显示用户最近登录信息. 单独执行 last 命令, 它会读取 / var/log/wtmp 的文件, 并把该给文件的内容记录的登入系统的用户名单全部显示出来
语法
last(选项)(参数)
选项
-a: 把从何处登入系统的主机名称或 ip 地址, 显示在最后一行;
-d: 将 IP 地址转换成主机名称;
-f < 记录文件 >: 指定记录文件.
-n < 显示列数 > 或 -< 显示列数 >: 设置列出名单的显示列数;
-R: 不显示登入系统的主机名称或 IP 地址;
-x: 显示系统关机, 重新开机, 以及执行等级的改变等信息.
参数
用户名: 显示用户登录列表;
终端: 显示从指定终端的登录列表.
实例
last 命令用了显示用户登录情况, 以下是直接显示固定行数的记录:
- last -10
- root pts/0 221.6.45.34 Tue Dec 17 09:40 still logged in
- root pts/0 221.6.45.34 Mon Dec 16 09:00 - 11:57 (02:56)
- root pts/0 222.94.97.122 Sun Dec 15 20:39 - 23:28 (02:48)
- root pts/0 222.95.209.80 Sat Dec 14 14:39 - 14:58 (00:18)
- root pts/0 221.6.45.34 Thu Dec 12 16:55 - 17:37 (00:41)
- root pts/0 49.65.139.195 Wed Dec 11 20:40 - 21:16 (00:35)
- root pts/0 49.65.139.195 Wed Dec 11 19:46 - 20:03 (00:17)
- root pts/0 221.6.45.34 Tue Dec 10 14:41 - 15:52 (01:10)
- root pts/0 221.6.45.34 Mon Dec 9 17:24 - 17:30 (00:06)
- root pts/0 221.6.45.34 Mon Dec 9 09:38 - 11:41 (02:02)
详解:
last 命令 --> 列出截止目前登录过系统的用户信息; 是 Linux 内置的审计跟踪工具
last 指令时, 它会读取位于 / var/log/wtmp 的文件, 并把该给文件的内容记录的登录系统的用户名单全部显示出来
last 信息解读
第一列信息: 用户名, 或者显示 reboot(启动或者重启操作在这里会记录成 reboot)
第二列信息: 终端位置, pts/0 (伪终端或虚拟终端) 意味着从诸如 SSH 或 telnet 的远程连接的用户.
tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户, 如果是启动或者重启操作, 这里会显示成 system boot
第三列信息: 登录 ip 或者内核, 如果你看见: 0.0 或者什么都没有, 这意味着用户通过本地终端连接.
也有在状态中显示内核版本的信息, 笔者猜测这些记录应该是属于系统的操作, 如开机, 关机, 重启等操作
第四列信息: 开始时间, 其中的日期格式为 date +"%a %b %d"
第五列信息: 结束时间 (still login in 还未退出 down 直到正常关机 crash 直到强制关机)
第六列信息: 持续时间
[备注一] 关于 last 命令的几点说明:
1. wtmp,btmp,utmp 均为二进制文件, 不能用 cat 查看, 可用 last 打开
2. echo> /var/log/wtmp 可清空 wtmp 记录
[备注二] Linux 系统的三个主要日志子系统:
1. 进程日志 (acct/pacct: 记录用户命令)
2. 错误日志 (/var/log/messages: 系统级信息; access-log: 记录 HTTP/web 的信息)
3. 连接日志 (/var/log/wtmp,/var/log/btmp,/var/run/utmp)
>>> 有关当前登录用户的信息记录在文件 utmp 中;
>>> 登录进入和退出纪录在文件 wtmp 中;
>>> 最后一次登录文件可以用 lastlog 命令察看;
>>> 数据交换, 关机和重起也记录在 wtmp 文件中;
来源: http://www.bubuko.com/infodetail-3072958.html