Я думал, что могу легко проверить временную метку определенных файлов. Тогда я понял, что это будет не так просто, когда я увидела метки времени 1991
.
Я думал, что могу легко проверить временную метку определенных файлов. Тогда я понял, что это будет не так просто, когда я увидела метки времени 1991
.
Ответы:
Вероятно, самый простой способ (предположим, что sda1 - это ваш / root /):
tune2fs -l / dev / sda1 | grep создан
Это должно показать вам дату создания файловой системы. Подтвержден для работы с ext2 до ext4, не уверен насчет других файловых систем!
cp -a
перезаписываю данные. Итак, вкратце: невозможно определить возраст системы во всех случаях.
/dev/root
немного более общее.
Один из механизмов, который я часто использую, заключается в проверке времени изменения (ctime) файлов в корневом домашнем каталоге. Поскольку /root
домашний каталог создается во время установки и часто используется редко, это может обеспечить относительно хорошее приближение. Как пояснил Кайл в комментариях, поскольку ctime относится к иноду, а не к данным, изменение содержимого файла не изменит ctime.
По умолчанию ls
команда печатает время изменения (mtime) файла. Так что если подставить в опцию ctime вот так,
ls -alct /root
Это распечатает все файлы, отобразит время создания и отсортирует по времени.
В качестве примера, вот пример 3 самых старых файлов в /root
каталоге с одной из моих систем.
ls -alt install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root 10238 Feb 18 2010 install.log.syslog
-rw-r--r--. 1 root 129 Dec 3 2004 .tcshrc
-rw-r--r--. 1 root 100 Sep 22 2004 .cshrc
А потом, проверив время изменения
ls -alct install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root 100 Feb 18 2010 .cshrc
-rw-r--r--. 1 root 10238 Feb 18 2010 install.log.syslog
-rw-r--r--. 1 root 129 Feb 18 2010 .tcshrc
Дата 18 февраля 2010 года определенно соответствует приблизительному времени, когда я впервые установил эту систему.
пытаться
ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6
ключи генерируются при установке ОС.
ls
дата отображается по-разному (по крайней мере, на моем компьютере), поэтому cut
команда работает неправильно. Я бы сейчас воспользовался stat -c %y /etc/ssh/ssh_host*pub
. Кроме того, мне интересно, почему времена создания файлов не получили больше любви в Linux ...
Проверка оборудования была бы хорошей идеей, если у вас есть к ней доступ. Вы можете проверить систему и / или компоненты оборудования, чтобы получить представление о том, когда она была собрана.
С другой стороны, если вы можете получить доступ к экрану BIOS, там часто есть информация о дате, которую можно использовать для определения возраста компьютера.
Если вы можете получить доступ к информации SMART на жестком диске ( smartctl -a /dev/sda
), возможно, вам нужно что-то предпринять. Я не вижу конкретной метки времени в SMART, но есть счетчик часов использования по крайней мере. Это обеспечит нижнюю границу возраста компьютера (поскольку, если жесткий диск проработал 100 часов, система не может быть моложе 100 часов).
Что касается проверок файловой системы, вы можете посмотреть информацию о дате /lost+found
- этот каталог был создан при создании файловой системы. Дата должна совпадать с информацией о настройках из предыдущего ответа.
/lost+found
подсказку, так как эта информация доступна непривилегированным пользователям. Запуск пакетной операции, такой как tune2fs, в корневых файловых системах в качестве суперпользователя немного беспокоит. Кроме того, это решение работает с файловыми системами FreeBSD и не ext2 / 3/4.
С RedHat и его производными, довольно просто получить общее представление о версии / сборке ОС через комбинацию возраста файла и других системных файлов. Обычно я проверяю /root/anaconda-ks.cfg
файл, так как он содержит начальную настройку сервера и параметры пакета. Иногда uname -a
будет хорошая информация о дате сборки ядра. Там также будет кластер файлов с той же датой в /etc
; обычно ссылки на rcx.d, скрипты rc, inittab и т. д.