kos*_*kos 24 networking internet
如何可靠地检查 Ubuntu 机器最后一次连接到互联网是什么时候?
如果这是不可能的,一种检查 Ubuntu 机器上次连接到网络的方法就足够了。
Ser*_*nyy 28
方法一
尽管 NetworkManager.conf 允许日志记录,但显然仍会进入系统日志。但是, kern.log 也有。
grep 'associated' /var/log/kern.log | tail -n1
Jun 21 17:08:25 anaconda kernel: [ 4910.819781] wlan1: associated
Run Code Online (Sandbox Code Playgroud)
方法二
我发现 NetworkManager 确实存储了上次连接时间,并且它/var/lib/NetworkManager/timestamps
以 unix 纪元时间格式(自 1970 年以来的秒数)在文件中排序。例如,我的看起来像这样:
$ cat /var/lib/NetworkManager/timestamps
[timestamps]
c562ac2d-8911-4273-b165-ed1495b28c9a=1432777079
46cfcdd9-d095-418f-acd6-0a7ca282bb9a=0
d81fb3d0-1717-42c0-903d-4622c2381597=1434895707
b0bdefe6-df88-49bb-83d8-154dd21d77d9=1433093286
Run Code Online (Sandbox Code Playgroud)
显示最新条目
date --date=@"$( awk -F'=' 'BEGIN {var=0}{if(var<$2) var=$2;} END{print var}' /var/lib/NetworkManager/timestamps )"
Run Code Online (Sandbox Code Playgroud)
awk 将搜索最大的纪元时间(换句话说,最新的),而 date 会将其转换为人类可读的形式。
我还怀疑/var/lib/NetworkManager/timestamps
编辑连接图形菜单使用此文件 ( ) 来显示上次连接
问题是,如果您仍然连接到接入点,GUI 方式会一直now
不显示,最后建立连接的时间
您可以检查/var/log/syslog
上次连接到网络时将显示的文件。
例子
Jun 21 08:00:00 Ubuntu dhclient: DHCPREQUEST of 192.0.0.0 on wlan0 to 192.0.0.0 port 67 (xid=0xec7c6e7)
Run Code Online (Sandbox Code Playgroud)
您可以运行grep命令以仅从日志中提取您需要的内容
< /var/log/syslog grep DHCPREQUEST
Run Code Online (Sandbox Code Playgroud)
检查CONNECTED_GLOBAL
后,我们发现link connected
在/var/log/syslog
/link connected/,/CONNECTED_GLOBAL/
% awk '/link connected/,/CONNECTED_GLOBAL/ {line=$0} END{print line}' /var/log/syslog
Jun 21 11:12:54 sturm NetworkManager[736]: <info> NetworkManager state is now CONNECTED_GLOBAL Jun 21 11:12:54
% awk '/link connected/,/CONNECTED_GLOBAL/ {month=$1;day=$2;time=$3} END{print month,day,time}' /var/log/syslog
Jun 21 11:12:54
Run Code Online (Sandbox Code Playgroud)