Дата установки и виртуальный статус машины (для Darwin, FreeBSD и NetBSD)

Как определить дату установки (когда система была впервые загружена) для 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.

person Brenda Olivia Martis    schedule 29.07.2015    source источник


Ответы (3)


Похоже, вы используете vmware.

Чтобы проверить, находитесь ли вы внутри виртуальной машины, используйте vmware-checkvm из open-vm-tools

person arved    schedule 31.07.2015

Чтобы угадать, является ли ваша машина виртуальной машиной, используйте следующее:

  • Под Linux: используйте lspci | grep -ic vmware, dmesg | grep -ic vmware или dmidecode | grep -ic vmware
  • В OpenBSD: используйте pcidump -v | grep -ic vmware или dmesg | 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, просто замените 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, чтобы найти самый старый файл на жестком диске, но даже это приблизительное значение, поскольку сервер, возможно, обновлялся несколько раз между сегодняшним днем ​​и первой установкой.

person Master Shuffler    schedule 31.07.2015
comment
Нет, это работает для Linux, OpenBSD и Darwin. Я тестировал их на всех трех ОС, поэтому знаю, что они работают. На самом деле для FreeBSD вам следует взглянуть на pciconf и devinfo: они должны работать примерно так же, как приведенные мной примеры. - person Master Shuffler; 06.08.2015

Во FreeBSD дата первой загрузки системы не записывается.

Если вы посмотрите на даты подкаталогов в корневом каталоге, вы обнаружите, что многие из них указывают на одну и ту же дату (но не в одно и то же время). Это дата, когда система была установлена ​​или обновлена.

Вы можете увидеть, когда машина в последний раз загружалась с

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