进一步阅读

进一步阅读

我需要在solaris中与linux的lastlog等效的命令,需要编写一个脚本来查找solaris服务器中用户上次登录的日期和时间。 Linux 使用lastlog 命令很容易获取。

我尝试了最后 -1 USERID ,如果任何用户未登录该服务器,则没有 ouptut ,任务是找到未登录服务器超过 90 天的用户,脚本应给出输出为

ServerName USERID 10-Jun-2018 3Days

答案1

没有lastlog与操作系统提供的 Linux 命令直接等效的命令。

在Linux登录计费系统中,有一个表记录每个用户帐户的最后登录时间,并通过该帐户的用户ID进行索引。在 NetBSD、FreeBSD 和 OpenBSD 登录记账系统中,有一个等效的表(尽管结构和名称不同),并且(在 NetBSD 和 FreeBSD 系统中)有一个可以lastlogin追溯到 20 世纪 90 年代中期的命令。在 Linux 和 BSD 世界中,该表由写入登录日志表和当前活动登录表(登录数据库中的另外两个表)的相同程序更新。

Solaris 有两张表:一张等效,一张不完全等效。

last其他人指向的命令并不是特别有用,因为它不能从任何一个命令操作。它的运作关闭不同的登录记账数据库中的表、登录事件日志表;正如您所看到的,如果帐户从未登录过,则该表中将没有任何内容可以处理。而相反,对于每个用户帐户,最后登录时间表都有一条记录(在 BSD 上是一个空的隐式记录,在 Linux 上是一个显式的空记录)。

不太等效的 Solaris 表是/var/adm/acct/sum/loginlog。当登录发生时,程序不会直接填充该数据login,并且没有直接等效的程序来报告它。

它与lastlogin命令相关联;然而,这与前面提到的同名命令有很大不同。在 Solaris 上,它是写入此表的工具,而不是报告其内容的工具。 (这也是lastloginAIX 上的用途。)该runacct工具每天运行,调用lastlogin命令来填充此表。报告是通过prtacct命令完成的。

直接等效的 Solaris 表是/var/adm/lastlog,Oracle doco 中未提及该表。没有提供用于读取它的程序。然而,有一个由理查德·汉密尔顿(Richard Hamilton)编写的第三方lastlog程序(直到该软件在甲骨文消失之前)可用。您可能想说服 OpenIndiana/Illumos 人员合并这样的命令。 OmniOS 工程师 Dan McDonald 于 2016 年 1 月才开始接触这些东西。

进一步阅读

  • 乔纳森·德博因·波拉德 (2018)。Unix 登录数据库。经常给出的答案。
  • 系统记帐文件”。 系统管理指南:高级管理。 Oracle Solaris 10 8/11 信息库。甲骨文。 2011年。
  • 最新日志。 Oracle Solaris 博客。 2010年7月15日。
  • lastloginFreeBSD 系统管理员手册。 2011年6月6日。
  • last用户命令手册。伊鲁莫斯。 2017年4月12日。
  • acctsh系统管理命令。太阳操作系统 5.11。 2002年3月15日。

答案2

Solaris 中的命令是last

这将显示用户上次tim登录的时间。

bash-[510]$ last -1 tim
tim       pts/1        192.168.0.106    Wed Jun 13 18:16   still logged in

如果该用户自数据库轮换后尚未登录,您将不会获得任何输出。

bash-[511]$ last -1 tom

wtmp begins Fri Mar 27 19:57

答案3

Oracle Solaris 还提供了一个很好的工具,称为

帐户

您可以在以下链接中找到说明系统会计

在目录中/var/adm/acct/总和你会发现一个名为登录日志。该文件记录每个用户的最后登录日期,由上次登录脚本

基于这个文件并使用 awk 等,应该很容易满足您的需求。

相关内容