Я работаю на машине 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
Если предполагается, что у вас файловая система 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
решение2
Я не знаю ни одного формального метода для этого.
Я всегда делал следующее:
touch /install-`date +"%F"` && chattr +i /install-20*
Это создает файл с именем «install-», за которым следует текущая дата (если запустить его сегодня, то это будет install-2012-04-03), и делает его неизменяемым, чтобы его нельзя было удалить случайно.
Тогда достаточно просто посмотреть этот файл, чтобы узнать, когда была установлена ОС.