Яким дистроагностичним способом визначити дату встановлення ОС?


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дати створення є специфічною для distro?
Кевін

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

1
Я думаю, що перевірка / тощо є більш портативною, ніж припускати, що файлова система ext. Або просто перевірте найстаріший каталог у /.
Кевін

1
Тільки для повноти зазначу, що вихід ls показує час, коли йому менше півроку, і рік, коли він становить більше шести місяців.
Випадково832

@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
Моя файлова система - це рейзерфи. Імхо, шукати / тощо - це кращий підхід.
користувач невідомий

0

Я не знаю жодного формального методу для цього.

Я завжди робив:

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

При цьому створюється файл з назвою "install-", який супроводжується поточною датою (якби він працював сьогодні, він буде встановлений-2012-04-03) і встановлює його як непорушний, тому його не можна видалити випадково.

Тоді це просто питання, щоб подивитися на цей файл, щоб побачити, коли встановлена ​​ОС.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.