linux命令logger、dmesg、last(b)、lastlog、who

logger 命令用来发送 syslog 到本地 rsyslog或远程。

-n 指定远程地址
-d udp
-T tcp
-P 端口

-i 带上进程id
-p 指定priority,默认为user.notice
-s 复制一份到stderr

-t 每条日志带上这个标签

-f 指定文件里的内容为日志内容

不带上-f也没有指定日志内容,则从stdin读取
#priority
kern		内核
user		使用者层级产生的信息
mail		邮件相关
daemon		系统服务相关
auth		认证相关
syslog		rsyslogd产生
cron		crontab信息
authpriv	类似auth,但是记录更多信息
ftp		ftp相关
local0-local7	保留给本机用户

debug,info,notice,warn,err,crit,alert,emerg


/etc/rsyslog.conf 部分如下

*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
#向本机发送syslog消息
logger -t dailei -p cron.info test

#/var/log/cron记录如下
Jul  6 01:11:32 192 dailei: test
#向机器192.168.1.10 tcp端口为514发送
logger -t dailei -p cron.info test -s -T -P 514 -n 192.168.1.10


dmesg 默认会读取 /dev/kmsg 文件的的内存缓冲区系统错误日志。

-h 帮助

-c 读取一次后清除缓冲区
-C 直接清除

-H 以less方式读取,并附加彩色。
#读取显示
dmesg

#读取显示一次,并清除
dmesg -c


last 命令用来显示最近的用户登录成功记录,也可以看到在线人数,默认会读取 /var/log/wtmp 文件。

-n	显示最新的几行
-F	显示完整的登入登出时间
-i	数字显示地址
-f	指定读取的日志文件(默认为/var/log/wtmp)

-a      host地址显示在最后

still logged in 代表用户在线

down	代表用户一直都在直到关机或重启
crash   代表异常退出
#显示最新20条
last -n 20

#显示特定用户
last root

#显示特定终端
last tty1
last pts/0

lastb 指令默认会读取 /var/log/btmp 文件,表示登录失败的日志,参数跟上面的 last 一样。

[root@izj6cfw9yi1iqoik31tqbgz ~]# lastb -n 10
root     ssh:notty    59.63.166.105    Fri Jul  6 13:31 - 13:31  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 13:31 - 13:31  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 13:23 - 13:23  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 13:23 - 13:23  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 13:23 - 13:23  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 13:11 - 13:11  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 13:11 - 13:11  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 13:11 - 13:11  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 12:59 - 12:59  (00:00)    
root     ssh:notty    59.63.166.105    Fri Jul  6 12:59 - 12:59  (00:00)

lastlog 命令会读取 /var/log/lastlog,每个用户只记录最近一次登录信息。

-u 指定用户
[root@izj6cfw9yi1iqoik31tqbgz ~]# lastlog
Username         Port     From             Latest
root             pts/0    39.181.130.112   Fri Jul  6 08:57:44 +0800 2018
...
nobody           pts/2                     Thu Jun 14 21:16:31 +0800 2018
...
freecls          pts/1    39.181.130.112   Fri Jul  6 09:01:52 +0800 2018

who 命令也可以显示目前谁登录机器。

[freecls@izj6cfw9yi1iqoik31tqbgz features]$ who am i
freecls  pts/1        2018-07-06 09:01 (39.181.130.112)
[freecls@izj6cfw9yi1iqoik31tqbgz features]$ who
root     tty1         2018-06-08 05:52
root     pts/0        2018-07-06 08:57 (39.181.130.112)
freecls  pts/1        2018-07-06 09:01 (39.181.130.112)
#利用上面的last指令也可以实现
[freecls@izj6cfw9yi1iqoik31tqbgz features]$ last | grep still
freecls  pts/1        39.181.130.112   Fri Jul  6 09:01   still logged in   
root     pts/0        39.181.130.112   Fri Jul  6 08:57   still logged in   
root     tty1                          Fri Jun  8 05:52   still logged in
上一篇: linux网络监控命令iftop、netstat、ss、tcpdump
下一篇: linux日志分割命令 - logrotate
作者邮箱: 203328517@qq.com