【问题标题】:Installation date and virtual status of the machine( For Darwin, FreeBSD and NetBSD)机器的安装日期和虚拟状态(适用于 Darwin、FreeBSD 和 NetBSD)
【发布时间】:2015-08-09 05:37:56
【问题描述】:

我如何确定 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.

【问题讨论】:

    标签: terminal virtual-machine freebsd darwin netbsd


    【解决方案1】:

    您似乎在使用 vmware。

    要检查您是否在 VM 中,请使用 open-vm-tools 中的 vmware-checkvm

    【讨论】:

      【解决方案2】:

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

      • Linux 下:使用lspci | grep -ic vmwaredmesg | 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% 确定。

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

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

      另外,如果您使用的是 Virtual Box,只需将 vmware 替换为 virtualbox,命令应该完全相同。

      这是在 Linux 虚拟机器上的结果:

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

      这是在 Linux 物理机器上的结果:

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

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

      【讨论】:

      • 不,它适用于 Linux、OpenBSD 和 Darwin。我已经在所有三个操作系统上测试了这些,所以我知道它们可以工作。实际上对于 FreeBSD,你应该看看 pciconfdevinfo :它们应该和我给出的例子几乎一样。
      【解决方案3】:

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

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

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

      > sysctl kern.boottime
      kern.boottime: { sec = 1438374739, usec = 930216 } Fri Jul 31 22:32:19 2015
      

      【讨论】:

        猜你喜欢
        • 2017-01-31
        • 1970-01-01
        • 2017-01-09
        • 2016-06-16
        • 1970-01-01
        • 2014-04-13
        • 1970-01-01
        • 2018-10-08
        • 1970-01-01
        相关资源
        最近更新 更多