我对 Ubuntu 和 Cent OS 有点惊讶,last -t
实际上它的行为是显示up till
指定时间的登录,而不是as of
其手册页中指定的时间。
Ubuntu 的手册页内容如下:
-t YYYYMMDDHHMMSS
Display the state of logins as of the specified time. This is useful, e.g., to determine easily who was logged
in at a particular time -- specify that time with -t and look for "still logged in”.
然而,实际行为看起来像这样:
# last -F -t 20150107000000 | grep pts
root pts/2 jp001.solidtunne Tue Jan 6 18:39:05 2015 - Tue Jan 6 18:40:34 2015 (00:01)
root pts/2 jp001.solidtunne Tue Jan 6 18:37:24 2015 - Tue Jan 6 18:37:41 2015 (00:00)
root pts/2 jp001.solidtunne Tue Jan 6 16:42:33 2015 - Tue Jan 6 16:43:49 2015 (00:01)
root pts/2 jp001.solidtunne Tue Jan 6 13:03:26 2015 - Tue Jan 6 13:07:02 2015 (00:03)
root pts/2 jp001.solidtunne Tue Jan 6 09:03:24 2015 - Tue Jan 6 09:03:54 2015 (00:00)
root pts/2 jp001.solidtunne Tue Jan 6 04:53:54 2015 - Tue Jan 6 04:54:07 2015 (00:00)
root pts/4 sf003.solidtunne Fri Jan 2 15:23:12 2015 - Fri Jan 2 15:23:51 2015 (00:00)
root pts/0 hk000.solidtunne Thu Jan 1 16:40:55 2015 - Thu Jan 1 16:41:21 2015 (00:00)
root pts/2 hk000.solidtunne Thu Jan 1 15:41:52 2015 - Thu Jan 1 15:42:02 2015 (00:00)
root pts/4 hk000.solidtunne Thu Jan 1 11:24:56 2015 - Thu Jan 1 13:40:40 2015 (02:15)
root pts/4 hk000.solidtunne Thu Jan 1 11:24:34 2015 - Thu Jan 1 11:24:48 2015 (00:00)
root pts/0 hk000.solidtunne Thu Jan 1 08:31:13 2015 - Thu Jan 1 08:31:25 2015 (00:00)
当前日期如下:
# date
Thu Jan 8 08:12:32 UTC 2015
和 Ubuntu 版本:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
核心:
# uname -a
Linux install 3.13.0-40-generic #69-Ubuntu SMP Thu Nov 13 17:53:56 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
我在Ubuntu的bug系统中打开了一个bug:https://bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/1408605。然而,似乎人们对这个错误不感兴趣,我几乎从谷歌得到任何关于这个错误的信息。我现在很困惑,我是不是错过了什么?
答案1
我相信这个错误只是一个文档错误。
Ubuntu 14.10 的版本util-linux
(来自哪里last
)是 2.25
Fedora 21 的版本util-linux
也是 2.25。
man
Fedora的页面指出last
:
-t, --until time
Display the state of logins until the specified time.
这就是您得到的实际行为。
util-linux
我建议您在 Ubuntu(或 Debian)和 CentOS 上针对该页面提出错误man
。
答案2
通过下载last.c解决问题。转到第 753 行,将该行更改为:
if (until && until < ut.ut_time)
continue;
到
if (until && until > ut.ut_time)
continue;
然后重新编译它。