linux中wtmp命令的简单介绍
4-9 Linux 中的日志分析
日志:系统、软件 和 用户操作交互信息的记录文件。用于系统审核,日常故障快速定位和排错。
创新互联公司是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站设计、成都品牌网站建设、成都全网营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站建设、网站建设、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。
日志文件保存在 /var/log 和 /var/run 目录下。在 RedHat 7 中,系统日志消息由两个服务负责处理,它们是 systemd-journald 和 rsyslogd。
日志的保存时间系统默认是4周,可以通过 cat /etc/logrotate.conf 里面的一项参数查到。rotate 可以修改。
主要日志文件介绍:
/var/log/messages:系统日志,主要记录内核和公共消息。
/var/log/cron:计划执行任务日志。
/var/log/dmesg:系统引导日志。
/var/log/maillog:邮件日志。
/var/log/lastlog:用户登录日志。(用 lastlog 命令)
/var/log/boot.log:系统启动日志。
/var/log/secure:安全和身份验证日志 。
/var/log/wtmp:记录所有用户登录的详细信息。(用 last 命令)
/var/log/btmp:记录失败的登录记录(用 lastb 命令)
/var/run/utmp:用户登录、注销及系统开、关等事件。(用 w / who 命令)
(wtmp、btmp 和 utmp 是二进制文件,不能用cat、vi、tail、more这些命令打开查看)
1、/var/log/messages:系统日志,主要记录内核和公共消息。
1)、messages 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志。
2)、红色下划线:systemctl restart sshd 重启 sshd 服务。
黄色下划线:tail /var/log/messages 查看 messages 日志。
蓝色方框:messages 日志已经可以查到重启 sshd 服务的记录。
绿色下划线:每个动作都记录得很清楚。暂停中(Stopping)、已暂停(Stopped)、启动中(Starting) 和 已启动(Started)
2、/var/log/cron:计划执行任务日志。
1)、cron 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志。
2)、cron 保存的是计划任务的日志,我们也可以通过特定输出查看计划进程的一些规律。从中也可以梳理一下计划任务的概念。好像 run-parts(/etc/cron.hourly) 进程,基本都是从开机开始,整点 1 个小时就执行一次。一次由两个事件为一组,一条 starting 0anacron ,另一条 finished 0anacron。
输入 grep run-parts'('/etc/cron.hourly')' 的时候,()括号需要用单引号引起来。
CROND进程,基本上也是从开机开始,整点 1 个小时就执行一次。
run-parts(/etc/cron.daily) 进程每天开机执行一次。一次由四个事件为一组,四个事件里面有两个事件是对应关系。starting man-db.cron 对应 finished man-db.cron,starting logrotate 对应 finished logrotate。
从 cron 日志知道系统的计划任务什么时候触发,执行了什么事件,产生了什么信息。
3、/var/log/dmesg:系统引导日志,显示硬件相关的信息。
head -20 dmesg | nl 列出开头 20 行信息。
4、/var/log/maillog:邮件日志。
红色下划线:tail maillog 查看 maillog 后 10 行信息。
黄色下划线:starting the Postfix mail system 启动 Postfix 邮件系统。daemon started 守护进程启动完成。
maillog 记录的信息都是和邮件有关。
5、/var/log/lastlog:记录所有用户登录最后一次登录本系统的时间信息。用 lastlog 读取信息。lastlog 的几列内容:Username(用户名)、Port(端口)、From(登录IP)、Latest(最后登录时间)。
系统用户是调用系统当中一些特殊服务的用户,不能登录系统(所以它们的登录状态都是显示“**Never logged in**”从来没有登录)。能够登录系统的只有 root 和 新建的普通用户。
6、/var/log/boot.log:系统启动日志。
head /var/log/boot.log 列出头 10 条系统启动的信息(内容较长,里面记录了多次启动的信息)。
通过 3 次的重启,查看 boot.log 大小。每重启一次文件的容量就会增大。也证明了每次启动都会往 boot.log 这个文件写信息。
7、/var/log/secure:安全和身份验证日志 。
tail secure 列出 secure 文件最后 10 行信息。通过 secure 的信息可以发现记录的是安全相关的信息,记录最多的是哪些用户登录服务器的相关日志。
黄色下划线:Failed password for root —— root 的密码错误。
红色下划线:Accepted password for root —— 密码正确,root 用户接受的密码。
绿色下划线:pam_unix(sshd:session): session opened for user root —— 为 root 用户建立会话。
8、/var/log/wtmp:记录所有用户登录的详细信息。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 last 命令查看。last 作用是显示近期用户或终端登录的情况(包括:登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,)
last -n 10 —— -n 跟一个数字,指定显示最近登录的数据。(或者 last -10 一样效果)
显示的内容有六列:
第一列:用户名。
第二列:终端位置。(pts/0 伪终端,SSH 或 telnet 等工具远程连接的用户,tty0 直接连接到计算机或本地连接的用户,后面的数字代表连接编号)。
第三列:登录 IP 或 内核。(如果是 0.0 或者 什么都没有,意味着用户通过本地终端连接,除了启动活动,内核版本会显示在状态中)。
第四列:开始时间。
第五列:结束时间。(still、login in 尚未推出,down 直到正常关机,crash 直到强制关机)。
第六列:持续时间。
9、/var/log/btmp:记录失败的登录记录,主要查看错误的登录信息。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 lastb 命令查看。
lastb -n 10 —— -n 跟一个数字,指定显示最近登录的数据。(或者 lastb -10 一样效果)
显示的内容有六列:
第一列:用户名。
第二列:终端位置。(连接失败:notty)。
第三列:登录 IP。
第四列:开始时间。
第五列:结束时间。
第六列:持续时间。
10、/var/run/utmp:用户登录、注销及系统开、关等事件。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 w / who 命令查看。
w 命令:查看登录者的信息及行为。
第一行:系统当前时间、系统没有中断持续性的运行时间、当前登录用户数、CPU在之前 1 分钟、5分钟、15分钟的平均负载。
USER: 登录用户名。
TTY:登录后系统分配的终端号。(tty:物理机本机终端、pts:远程终端)
FROM:远程主机名 IP。(tty 物理机本机不显示、pts 远程终端会显示 IP)
LOGIN@ :登录时间。
IDLE:用户闲置时间 。这是个计时器,用户执行任何操作,计时器就会被重置。(这里显示的时间是距离上次命令操作后多久没有进行操作的闲置时间)
JCPU:执行命令进程所消耗的总时间。 终端连接的所有进程占用时间,包括当前正在运行作业占用的时间。
PCPU:当前进程所消耗 CPU 的时间。
WHAT:用户正在运行的进程 或 命令。(-bash 进程是终端进程)
who 命令:显示关于当前在本地系统上的所有用户信息。who 和 w 差不多,who 显示的内容更为简洁。who 命令显示以下内容:登录名、tty、登录日期 和 时间。如果用户是从远程终端登录的,那么该终端的 IP 也会显示出来。
11、whoami:显示自己的登录用户。
谁知道LINUX下wtmp软件的配置与使用方法。
你指的应该是wtmp文件吧。wtmp 是个数据库文件,记录系统登录注销等信息。
查看wtmp文件可以使用vim编辑器,但是是肉眼不可读的,所以可以使用系统自带的工具进行查看,last 工具,语法如下
root@ubuntu:~# last --help
last: invalid option -- '-'
Usage: last [-num | -n num] [-f file] [-t YYYYMMDDHHMMSS] [-R] [-adioxFw] [username..] [tty..]
如果还有其他疑问,请补充问题
Good Luck and cockroach bless you~
理工小强祝你好运~
查看和打印日志的linux命令
Linux系统日志文件存放在/var/log下
/var/log/cron 记录了系统定时任务相关的日志;
/var/log/cups 记录打印信息的日志;
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息。
/var/log/btmp 记录错误登录的日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看;
/var/log/lastlog 记录系统中所有用户最后一次的登录时间的日志。这个文件也是二进制文件,不能直接vi,而要使用lastlog命令查看。
/var/log/mailog 记录邮件信息;
/var/log/message 记录系统重要信息的日志,记录Linux系统的绝大多数重要信息,如果系统出现问题,首先要检查的就是应该是这个日志文件;
/var/log/secure 记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。比如说系统的登录,ssh的登录,su切换用户,sudo授权,甚至添加用户和修改用户密码;
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件不能直接vi而需要使用last命令来查看;
/var/run/utmp 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息,同样这个文件不能直接vi,要使用w,who,users等命令;
Linux系统日志子系统详解
在Linux系统中,有三个主要的日志子系统:
连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。
错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。
常用的日志文件如下:
Access-log纪录HTTP/web的传输
acct/pacct纪录用户命令
aculog纪录MODEM的活动
btmp纪录失败的纪录
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
messages从syslog中记录信息(有的链接到syslog文件)
sudolog 纪录使用sudo发出的命令
sulog 纪录使用su命令的使用
syslog从syslog中记录信息(通常链接到messages文件)
utmp纪录当前登录的每个用户
wtmp一个用户每次登录进入和退出时间的永久纪录
xferlog 纪录FTP会话
utmp、wtmp和lastlog日志文件是多数重用Unix日志子系统的关键--保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为wtmp.1;第二天后wtmp.1变为wtmp.2等等,直到wtmp.7。
每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了,则把用户上次登录、退出时间和主机名写到标准输出中,然后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后,utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。
下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。
具体命令
wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。
who:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如:who(回车)显示
chyangpts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
yloupts/8 Aug 18 14:15
如果指明了wtmp文件名,则who命令查询所有以前的纪录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如:w(回车)显示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27。
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash
ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w
lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash
lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/
ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail
ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash
users:users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如:users(回车)显示:chyang lewis lewis ylou ynguo ynguo
last:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如:
chyang pts/9202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)
cfan pts/6202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)
如果指明了用户,那么last只报告该用户的近期活动,例如:last ynguo(回车)显示:
ynguopts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)
ynguopts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)
ynguopts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)
ynguopts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)
ynguopts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12)
ynguopts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11)
ynguopts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55)
ac:ac命令根据当前的/var/log/wtmp文件中的.登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 5177.47
Linux查看系统日志的一些常用命令
last
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。
-f 记录文件 指定记录文件。
-n 显示列数或-显示列数 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息
以下看所有的重启、关机记录
last | grep reboot
last | grep shutdown
history
列出所有的历史记录:
[zzs@Linux] # history
只列出最近10条记录:
[zzs@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[zzs@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[zzs@linux] #!!
执行最后一次以rpm开头的'命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[zzs@linux] #!rpm
逐屏列出所有的历史记录:
[zzs@linux]# history | more
立即清空history当前所有历史命令的记录
[zzs@linux] #history -c
cat, tail 和 watch
系统所有的日志都在 /var/log 下面自己看(具体用途可以自己查,附录列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,
这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。
除此之外还有more, less ,dmesg|more,这里就不作一一列举了,因为命令太多了,关键看个人喜好和业务需求.个人常用的就是以上那些
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
2019-02-01 Linux查看用户/历史命令
1、当前登录用户信息
who:
用户名、终端类型、登陆日期以及远程主机地址。
who /var/log/wtmp
可以查看自从wtmp文件创建以来的每一次登陆情况
-H:打印每列的标题
users命令: 打印当前登录的用户,从上面可以看到我自己从不同主机同时登录,所以下面显示2次。
2、查看命令历史
每个用户的命令历史记录保存在 ~/.bash_history 文件里,
或者在终端输入: history
要想再执行哪条,使用 !96 重新执行该条命令。
3、last命令查看用户登录历史
此命令会读取 /var/log/wtmp文件;/var/log/btmp可以显示远程登陆信息。
last默认打印所有用户的登陆信息。
如果想打印某个用户的登陆信息,可以使用
last 用户名
一些选项:
(1)-x:显示系统开关机以及执行等级信息
(2)-a:将登陆ip显示在最后一行
(3)-d:将IP地址转换为主机名
(4)-t:查看指定时间的用户登录历史
例如: 查看axing在
axing@ax:~$ last axing -a -t 20190201160000
4、lastlog命令查看所有用户最近一次登录历史
读取/var/log/lastlog文件;用户排列顺序按照/etc/passwd中的顺序
一些选项:
(1) -u:查看某用户的最后一次登录记录
比如: lastlog -u axing
(2) -t:查看最近几天之内的用户登录历史
比如: lastlog -t 1
查看最近1天之内的登陆历史
(3) -b:查看指定天数之前的用户登录历史
例如: lastlog -b 60
查看60天之前的用户登录历史
5、ac命令
根据/var/log/wtmp文件中的登陆和退出时间报告用户连接的时间(小时),默认输出报告总时间
需要安装:
(1)-p:显示每个用户的连接时间
(2)-d:显示每天的连接时间
(3)-y:显示年份,和-d配合使用
分享名称:linux中wtmp命令的简单介绍
文章起源:http://pwwzsj.com/article/dsghoog.html