Ich arbeite an einer CrunchBang-Maschine und versuche, ein Skript zu schreiben, das das Installationsdatum des Betriebssystems als Referenz benötigt.
Ich habe gesucht und diesen Befehl gefunden:
ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
Es druckt
Mar 31 21:24
Ich habe den Teil nicht verstanden tail -1
, konnte aber herausfinden, dass $6, $7, $8 das 6., 7. und 8. Vorkommen der letzten Zeile sind, auf die der Befehl verweist.
Mir wurde jedoch klar, dass das Jahr nicht einbezogen werden kann, da das Jahr im ls -ltc
Befehl nicht angezeigt wurde.
Manche Leute schlugen vor, das Erstellungsdatum herauszufinden /etc
und andere das /var/log/syslog
usw. zu überprüfen. Ich dachte, dass diese möglicherweise etwas spezifisch für die Distribution sind.
Was empfehlen Sie für eine wirklich distributionsunabhängige Methode zum Ermitteln des Installationsdatums des Betriebssystems?
Antwort1
Wenn davon ausgegangen wird, dass Sie ein ext{2,3,4}-Dateisystem haben und das Root-Dateisystem bei der Installation des Betriebssystems formatiert haben (und keine Upgrades von einem anderen Betriebssystem ohne Löschen durchgeführt haben), können Sie dumpe2fs verwenden:
% dumpe2fs -h /dev/mapper/vg_desktop-lv_root 2>&1 |grep 'Filesystem created'
Filesystem created: Sat Jul 23 04:28:07 2011
Antwort2
Ich kenne hierfür keine formale Methode.
Was ich immer getan habe, ist:
touch /install-`date +"%F"` && chattr +i /install-20*
Dadurch wird eine Datei mit dem Namen „install-“ erstellt, gefolgt vom aktuellen Datum (bei Ausführung heute wäre dies „install-2012-04-03“), und die Datei wird als unveränderlich festgelegt, sodass sie nicht versehentlich gelöscht werden kann.
Dann müssen Sie nur noch einen Blick auf die Datei werfen, um festzustellen, wann das Betriebssystem installiert wurde.