0

如何确定 Linux、Darwin、FreeBSD 和 NetBSD 的安装日期(系统首次启动时)?另外,有没有办法获得这些机器的虚拟状态(系统是虚拟的还是物理的)。我需要使用终端命令输出。

例如,

可以使用以下命令找到 Windows 机器安装日期:

>Command:
>
>     ssh host systeminfo | grep -i original
>
>Output:
>
>     Original Install Date:     1/24/2014, 12:30:41 PM

Windows 机器机器的虚拟状态可以使用以下命令找到:

>Command:
>
>    ssh host systeminfo | grep -i manufacturer
>
>Output:
>
>    OS Manufacturer:           Microsoft Corporation
>    System Manufacturer:       VMware, Inc.
4

3 回答 3

0

您似乎正在使用 vmware。

vmware-checkvm使用open-vm-tools检查您是否在虚拟机内

于 2015-07-31T07:49:59.540 回答
0

要猜测您的机器是否是虚拟机,请使用以下命令:

  • 在 Linux 下:使用lspci | grep -ic vmwareordmesg | grep -ic vmwaredmidecode | grep -ic vmware
  • 在 OpenBSD 下:使用pcidump -v | grep -ic vmwaredmesg | grep -ic vmware
  • 在 Darwin/Mac OS X 下:使用system_profiler | grep -ic vmware

我认为 FreeBSD 和 NetBSD 也有等效的pcidump命令,但我现在主要使用 OpenBSD,所以我不是 100% 确定。

例如,您也可以尝试在其中搜索 vmware 字符串/var/log/messages,它dmesg | grep -ic vmware应该可以在几乎所有平台上运行(需要注意的是,dmesg如果机器运行了很长时间,您可能会被覆盖)。

所有这些命令都应该返回一个数值。如果此值大于零,则您的计算机是虚拟机。请注意,该值可能因机器和命令而异,但大于零的结果始终表示虚拟机。

作为额外的奖励,如果您使用的是 Virtual Box,只需替换vmwarevirtualbox,命令应该完全相同。

以下是在 Linux虚拟机上的结果:

# dmidecode | grep -ic vmware
4
# lspci | grep -ic vmware
35

以下是在 Linux物理机上的结果:

# dmidecode | grep -ic vmware
0
lspci | grep -ic vmware
0

至于猜测机器的安装日期,这并不容易。尝试使用该find命令在硬盘上查找最旧的文件,但这只是一个近似值,因为从今天到第一次安装服务器可能已经更新了好几次。

于 2015-07-31T08:50:51.667 回答
0

在 FreeBSD 上,系统首次启动的日期不会被记录下来。

如果您查看根目录中子目录的日期,您会发现其中有很多指向同一日期(但不是同一时间)。这是系统安装或更新的日期。

您可以看到机器上次启动的时间

> sysctl kern.boottime
kern.boottime: { sec = 1438374739, usec = 930216 } Fri Jul 31 22:32:19 2015
于 2015-08-08T21:37:56.517 回答