Qual è un modo distro-agnostico per determinare la data di installazione del sistema operativo?


10

Sono su una macchina CrunchBang e sto provando a scrivere uno script che deve avere come riferimento la data di installazione del sistema operativo.

Ho cercato e trovato questo comando:

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

Stampa

Mar 31 21:24

Non ho capito la tail -1parte, ma sono stato in grado di capire che $ 6 $ 7 $ 8 sono le sime occorrenze 7 ° 8 ° dell'ultima riga a cui fa riferimento il comando.

Tuttavia, mi sono reso conto che l'anno non può essere incluso poiché l'anno non è stato visualizzato nel ls -ltccomando.

Alcune persone hanno suggerito di trovare la data di /etccreazione e alcuni di controllare /var/log/syslogecc. Ho pensato che questi potrebbero essere un po 'specifici per la distribuzione.

Qual è la tua raccomandazione per un modo veramente distro-agnostico di trovare la data di installazione del sistema operativo?


1
Perché pensi che /etcla data di creazione del controllo sia specifica per la distro?
Kevin,

Di recente ho letto che ci sono alcune distro che hanno una diversa gerarchia di file system come gobolinux e ho avuto l'impressione che potrebbero esserci più distro simili a gobolinux.
Animesh,

1
Penso che controllare / etc sia più portabile che assumere un filesystem ext. Oppure cerca la directory più vecchia in /.
Kevin

1
Solo per completezza, noterò che l'output di ls mostra il tempo in cui ha meno di sei mesi e l'anno in cui è più di sei mesi.
Casuale 832

@Kevin se si decomprime un archivio preservando le autorizzazioni, la directory / file più vecchia può essere molto più vecchia della data di installazione del sistema.
scai,

Risposte:


8

Se il presupposto è che hai un filesystem ext {2,3,4} e hai formattato il filesystem di root quando hai installato il sistema operativo (e non hai fatto aggiornamenti da un altro sistema operativo senza cancellare), puoi usare dumpe2fs:

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

L'output veniva reindirizzato da qualche parte o in un file, perché non è successo nulla quando ho eseguito il comando.
Animesh,

Dovrai fornire il dispositivo per il tuo filesystem di root, invece di / dev / mapper / vg_desktop-lv_root. Controlla l'output di df /per ottenerlo. Sono sicuro che potresti automatizzarlo.
jsbillings,

Mi sono reso conto di avere un _invece di -quando ho digitato il comando. Adesso ho la data. Grazie.
Animesh,

O che non hai eseguito il backup, la formattazione e il ripristino.
psusi,

3
Il mio filesystem è reiserfs. Imho, cercare / etc è un approccio migliore.
utente sconosciuto

0

Non conosco alcun metodo formale per questo.

Quello che ho sempre fatto è:

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

Questo crea un file chiamato 'install-' seguito dalla data corrente (se eseguito oggi sarebbe install-2012-04-03) e lo imposta come immutabile, quindi non può essere cancellato per errore.

Quindi è solo una questione di guardare quel file per vedere quando è stato installato il sistema operativo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.