当前位置: 首页>>技术教程>>正文


networking – 如何可靠地检查Ubuntu计算机最后一次连接到互联网的时间是什么?

,

问题描述

如何可靠地检查Ubuntu计算机最后一次连接到互联网的时间是什么?

如果无法做到这一点,那么一种检查Ubuntu计算机上次连接到网络的时间的方法就足够了。

最佳方案

方法1

即使NetworkManager.conf允许记录日志,显然它仍然进入syslog。但是,kern.log也具有它。

grep 'associated' /var/log/kern.log | tail -n1                               
Jun 21 17:08:25 anaconda kernel: [ 4910.819781] wlan1: associated

方法2

我发现NetworkManager确实存储了最后的连接时间,并且以UNIX纪元时间格式(自1970年以来的秒数)在/var/lib/NetworkManager/timestamps文件中进行了排序。我的例子如下:

$ 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

显示最新条目

date --date=@"$( awk -F'=' 'BEGIN {var=0}{if(var<$2) var=$2;} END{print var}' /var/lib/NetworkManager/timestamps )"

Awk将搜索最大的纪元时间(换句话说,最晚),并将日期转换为人类可读的格式。

我也怀疑该文件(/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)

您可以运行grep命令以仅从日志中提取所需的内容

< /var/log/syslog grep DHCPREQUEST 

第三种方案

/var/log/syslog中找到link connected之后,检查CONNECTED_GLOBAL

/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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9804.html,未经允许,请勿转载。