我试图找到一种方法来报告我的 Solaris 10 服务器上所有用户的最近登录。我从last命令的输出开始。使用该命令,我得到如下输出:
bd9439 pts/1 vpn-xxx-xx-xxx-x Fri Oct 25 10:46 still logged in
vf7854 pts/1 vpn-xxx-xx-xxx-x Fri Oct 25 10:23 - 10:38 (00:15)
Run Code Online (Sandbox Code Playgroud)
根据手册页,日期和时间格式由区域设置控制。我很少使用语言环境设置。有什么我可以使用的东西可以改变显示以包括日期的“年份”部分?我希望得到与此类似的输出行:
bd9439 pts/1 vpn-xxx-xx-xxx-x Fri Oct 25 2013 10:46 still logged in
vf7854 pts/1 vpn-xxx-xx-xxx-x Fri Oct 25 2013 10:23 - 10:38 (00:15)
Run Code Online (Sandbox Code Playgroud)
我不清楚手册页是指last命令本身的输出还是数据实际上是如何存储在 /var/adm/wtmpx 中的。
如果有另一种方法可以获得这个“上次登录”属性,我很乐意学习它。
我一半提供上下文,一半咆哮
你遇到了一个我不喜欢管理 Solaris 系统的主要原因的例子:没有什么是容易的。
除了更改时间戳的某些部分的顺序之外,我不知道语言环境是否真的会做任何事情。我很感兴趣,如果有人知道如何哄 Solarislast提供这一年的话,我很感兴趣,但我不会屏住呼吸。Sun 的软件开发口号似乎是“技术上可行”。
Sun 似乎已经开发出一些东西,达到了他们绝对需要的程度,然后几乎就停在了那里。因此,您最终会得到这样的普遍接受的解决方案,并且您只需保留列出的常见问题解决方法集合。
我曾经发现这样做的唯一方法是使用/usr/lib/acct/fwtmp转储的全部内容/var/adm/wtmpx到一个管道,其他一些程序,我使用的操作文本输出(grep,tac,sed等)。
奖励:由于寻找文件末尾并仅按固定wtmpx记录长度向后移动会要求太多,fwtmp因此只能打印出wtmpx文件中出现的内容。因此,您必须使用其他一些方法(可能tac)来反转线条,除非您实际上对最旧的信息感兴趣(这是最不可能的用例,但我离题了)。
根据您的系统运行的wtmpx时间长短,可能会有点大,所以您可能想去喝杯咖啡,或者去检查一下您的轮胎是否充气不足,或者在您工作的时候阅读一两本书在它。
您问题的实际答案:
这是一个last以大多数对查看登录记录感兴趣的人可用的方式模拟的命令:
# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head
Run Code Online (Sandbox Code Playgroud)
你会注意到我必须通过管道输入wtmpx,因为他们没有给你一种方法只是将文件提供给fwtmp. 那是因为stdin在大多数用例中通过Technically Works™提供它,他们不必编写额外的几行代码。所以他们宁愿让管理员这样做。
这是我照顾的系统的上述示例输出:
[root@atum root]# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head
jadavis6 ts/1 pts/1 19410 7 0000 0000 1382723864 157168 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
jadavis6 sshd 19404 7 0000 0000 1382723864 133973 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
oracle sshd 6640 8 0000 0000 1382713401 157107 0 0 Fri Oct 25 11:03:21 2013
oracle ts/1 pts/1 6647 8 0000 0000 1382713401 150489 0 0 Fri Oct 25 11:03:21 2013
oracle ts/1 pts/1 6647 7 0000 0000 1382712445 24488 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:25 2013
oracle sshd 6640 7 0000 0000 1382712442 304729 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:22 2013
jadavis6 sshd 23537 8 0000 0000 1382560970 410725 0 0 Wed Oct 23 16:42:50 2013
jadavis6 ts/1 pts/1 23544 8 0000 0000 1382560970 404795 0 0 Wed Oct 23 16:42:50 2013
jadavis6 ts/1 pts/1 23544 7 0000 0000 1382552999 619524 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
jadavis6 sshd 23537 7 0000 0000 1382552999 602215 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
[root@atum root]#
Run Code Online (Sandbox Code Playgroud)
编辑:
我知道我在抱怨那里的一些小事,但过了一段时间我就厌倦了每一件小事(比如简单地问“今年是什么?”)变成一个小时的谷歌节或或多或少只是部落的东西知识(例如 的存在fwtmp)。