Pomyślałem, że mogę łatwo sprawdzić znacznik czasu poszczególnych plików. Potem zdałem sobie sprawę, że nie byłoby tak łatwo, gdy zobaczyłem takie znaczniki czasu 1991
.
Pomyślałem, że mogę łatwo sprawdzić znacznik czasu poszczególnych plików. Potem zdałem sobie sprawę, że nie byłoby tak łatwo, gdy zobaczyłem takie znaczniki czasu 1991
.
Odpowiedzi:
Najprostszym sposobem byłby prawdopodobnie (zakładając, że sda1 to twój / root /):
tune2fs -l / dev / sda1 | grep utworzony
Powinno to pokazywać datę utworzenia systemu plików. Potwierdzono pracę z ext2 na ext4, nie jestem pewien co do innych systemów plików!
cp -a
przesyłam dane. Krótko mówiąc: nie można ustalić wieku systemu we wszystkich przypadkach.
/dev/root
jest nieco bardziej ogólne.
Jednym z często używanych przeze mnie mechanizmów jest sprawdzanie czasu zmiany (ctime) plików w głównym katalogu głównym. Ponieważ /root
katalog domowy jest tworzony w czasie instalacji i jest często używany, może to zapewnić względnie dobre przybliżenie. Jak wyjaśnił Kyle w komentarzach, ponieważ ctime odnosi się do i-węzła, a nie danych, modyfikacja zawartości pliku nie zmieni ctime.
Domyślnie ls
polecenie wypisuje czas modyfikacji (mtime) pliku. Więc jeśli zastąpimy w takiej opcji ctime,
ls -alct /root
Spowoduje to wydrukowanie wszystkich plików, wyświetlenie czasu utworzenia i sortowanie według czasu.
Jako przykład, oto przykład 3 najstarszych plików w /root
katalogu z jednego z moich systemów.
ls -alt install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root 10238 Feb 18 2010 install.log.syslog
-rw-r--r--. 1 root 129 Dec 3 2004 .tcshrc
-rw-r--r--. 1 root 100 Sep 22 2004 .cshrc
A następnie sprawdzając czas zmiany
ls -alct install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root 100 Feb 18 2010 .cshrc
-rw-r--r--. 1 root 10238 Feb 18 2010 install.log.syslog
-rw-r--r--. 1 root 129 Feb 18 2010 .tcshrc
Data 18 lutego 2010 r. Z pewnością śledzi przybliżony czas, w którym po raz pierwszy zainstalowałbym ten system.
próbować
ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6
klucze są generowane podczas instalacji systemu operacyjnego.
ls
pokazuje datę inaczej (przynajmniej na moim komputerze), więc cut
polecenie nie działa poprawnie. Chciałbym teraz użyć stat -c %y /etc/ssh/ssh_host*pub
. Zastanawiam się także, dlaczego czasy tworzenia plików nie zyskały więcej miłości w Linuksie ...
Sprawdzanie sprzętu byłoby dobrym wyborem, jeśli masz do niego dostęp. Możesz sprawdzić system i / lub komponenty sprzętowe, aby zorientować się, kiedy został złożony.
Alternatywnie, jeśli możesz uzyskać dostęp do ekranu BIOS, często są tam informacje o dacie, które można wykorzystać do ustalenia, ile lat ma maszyna.
Jeśli możesz uzyskać dostęp do informacji SMART na dysku twardym ( smartctl -a /dev/sda
), może być coś do zrobienia. Nie widzę określonego znacznika czasu w SMART, ale jest co najmniej godzinny licznik użycia. Zapewniłoby to dolną granicę wieku maszyny (ponieważ jeśli dysk twardy działał przez 100 godzin, system nie może być młodszy niż 100 godzin).
Jeśli chodzi o kontrole systemu plików, możesz sprawdzić informacje o dacie dla /lost+found
- ten katalog został utworzony podczas tworzenia systemu plików. Data powinna zgadzać się z informacjami tunefs z poprzedniej odpowiedzi.
/lost+found
podpowiedź, ponieważ ta informacja jest dostępna dla nieuprzywilejowanych użytkowników. Uruchamianie operacji wsadowej, takiej jak tune2fs, w systemach plików root, ponieważ superużytkownik jest nieco niepokojący. Ponadto to rozwiązanie działa w systemach plików FreeBSD i innych niż ext2 / 3/4.
Dzięki RedHat i pochodnym bardzo łatwo jest uzyskać ogólne pojęcie o wersji / archiwum systemu operacyjnego poprzez połączenie wieku plików i innych plików systemowych. Zazwyczaj sprawdzam /root/anaconda-ks.cfg
plik, ponieważ zawiera on początkową konfigurację serwera i parametry pakietu. Czasami uname -a
będą mieć dobre informacje o dacie kompilacji jądra. Byłby też klaster plików z tą samą datą /etc
; zazwyczaj linki rcx.d, skrypty rc, inittab itp.