Was ist eine distro-agnostische Methode, um das Installationsdatum des Betriebssystems zu bestimmen?

10

Ich bin auf einem CrunchBang-Computer und versuche, ein Skript zu schreiben, für das das Installationsdatum des Betriebssystems als Referenz erforderlich ist.

Ich habe diesen Befehl gesucht und gefunden:

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

Es wird gedruckt

Mar 31 21:24

Ich habe den tail -1Teil nicht verstanden , konnte aber herausfinden, dass $ 6 $ 7 $ 8 das 6. 7. 8. Vorkommen der letzten Zeile sind, auf die der Befehl verweist.

Ich habe jedoch festgestellt, dass das Jahr nicht enthalten sein kann, da das Jahr nicht im ls -ltcBefehl angezeigt wurde .

Einige Leute schlugen vor, das Datum zu finden /etcund andere das /var/log/syslogusw. zu überprüfen . Ich dachte, diese könnten ein wenig spezifisch für die Distribution sein.

Was empfehlen Sie für einen wirklich distro-agnostischen Weg, um das Installationsdatum des Betriebssystems zu ermitteln?

Animesh
quelle
1
Warum ist das /etcErstellungsdatum der Überprüfung Ihrer Meinung nach distro-spezifisch?
Kevin
Ich habe kürzlich gelesen, dass es einige Distributionen gibt, die eine andere Dateisystemhierarchie wie Gobolinux haben, und hatte den Eindruck, dass es möglicherweise mehr Distributionen gibt, die Gobolinux ähneln.
Animesh
1
Ich denke, das Überprüfen von / etc ist portabler als die Annahme eines ext-Dateisystems. Oder suchen Sie einfach nach dem ältesten Verzeichnis in /.
Kevin
1
Der Vollständigkeit halber möchte ich darauf hinweisen, dass die Ausgabe von ls die Zeit anzeigt, in der es weniger als sechs Monate alt ist, und das Jahr, in dem es mehr als sechs Monate alt ist.
Random832
@ Kevin Wenn Sie ein Archiv entpacken und dabei die Berechtigungen beibehalten, kann das älteste Verzeichnis / die älteste Datei viel älter sein als das Installationsdatum des Systems.
Scai

Antworten:

8

Wenn Sie davon ausgehen, 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öschung 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
jsbillings
quelle
Wurde die Ausgabe an einen Ort oder in eine Datei umgeleitet, weil beim Ausführen des Befehls nichts passiert ist?
Animesh
Sie müssen das Gerät für Ihr Root-Dateisystem anstelle von / dev / mapper / vg_desktop-lv_root bereitstellen. Überprüfen Sie die Ausgabe von df /, um es zu erhalten. Ich bin sicher, Sie könnten es automatisieren.
jsbillings
Mir wurde klar, dass ich _statt -beim Eingeben des Befehls ein hatte. Ich bekomme jetzt das Datum. Vielen Dank.
Animesh
Oder dass Sie nicht gesichert, neu formatiert und wiederhergestellt haben.
Psusi
3
Mein Dateisystem ist reiserfs. Imho, nach / etc zu suchen ist ein besserer Ansatz.
Benutzer unbekannt
0

Ich kenne keine formale Methode dafür.

Was ich immer getan habe ist:

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

Dadurch wird eine Datei mit dem Namen "install-" gefolgt vom aktuellen Datum erstellt (wenn sie heute ausgeführt wird, wäre dies "install-2012-04-03") und als unveränderlich festgelegt, sodass sie nicht versehentlich gelöscht werden kann.

Dann müssen Sie sich nur noch diese Datei ansehen, um zu sehen, wann das Betriebssystem installiert wurde.

benjarrell
quelle