Что такое дистро-агностический способ определения даты установки ОС?


10

Я нахожусь на машине CrunchBang и пытаюсь написать сценарий, для которого необходимо указать дату установки ОС.

Я искал и нашел эту команду:

ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'

Это печатает

Mar 31 21:24

Я не понял tail -1части, но смог выяснить, что $ 6 $ 7 $ 8 - это 6-е, 7-е, 8-е вхождения последней строки, на которую ссылается команда.

Однако я понял, что нельзя включить год, так как год не отображался в ls -ltcкоманде.

Некоторые люди предлагали найти дату, /etcа некоторые проверяли и /var/log/syslogт. Д. Я подумал, что они могут быть немного специфичны для дистрибутива.

Что вы посоветуете для действительно дистрибутивного способа определения даты установки ОС?


1
Как вы думаете, почему /etcдата создания чека является дистрибутивной?
Кевин

Недавно я читал, что есть некоторые дистрибутивы с другой иерархией файловой системы, такие как gobolinux, и у меня сложилось впечатление, что может быть больше дистрибутивов, похожих на gobolinux.
Анимеш

1
Я думаю, что проверка / etc более переносима, чем допущение файловой системы ext. Или просто проверьте самый старый каталог в /.
Кевин

1
Просто для полноты отметим, что вывод ls показывает время, когда ему меньше шести месяцев, и год, когда ему больше шести месяцев.
Random832

@Kevin Если вы распакуете архив с сохранением прав доступа, самый старый каталог / файл может быть намного старше даты установки системы.
Scai

Ответы:


8

Если предполагается, что у вас есть файловая система ext {2,3,4}, и вы отформатировали корневую файловую систему при установке ОС (и не выполняли обновления с другой ОС без вайпов), вы можете использовать dumpe2fs:

% dumpe2fs -h /dev/mapper/vg_desktop-lv_root 2>&1 |grep 'Filesystem created'
Filesystem created:       Sat Jul 23 04:28:07 2011

Был ли перенаправлен вывод куда-либо или файл, потому что ничего не произошло, когда я запустил команду.
Анимеш

Вам придется предоставить устройство для вашей корневой файловой системы вместо / dev / mapper / vg_desktop-lv_root. Проверьте вывод, df /чтобы получить его. Я уверен, что вы могли бы автоматизировать это.
Jsbillings

Я понял, что _вместо -ввода набрал команду. Я получил дату сейчас. Спасибо.
Анимеш

Или что вы не сделали резервную копию, переформатировать и восстановить.
psusi

3
Моя файловая система reiserfs. Imho, поиск / etc - лучший подход.
пользователь неизвестен

0

Я не знаю ни одного формального метода для этого.

То, что я всегда делал, это:

touch /install-`date +"%F"` && chattr +i /install-20*

Это создает файл с именем 'install-', за которым следует текущая дата (если запустить его сегодня, это будет install-2012-04-03) и устанавливает его как неизменяемый, поэтому он не может быть удален случайно.

Тогда нужно просто посмотреть на этот файл, чтобы увидеть, когда была установлена ​​ОС.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.