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.