Bagaimana menentukan "umur" sistem linux sejak instalasi?


39

Saya pikir saya dapat dengan mudah memeriksa cap waktu file tertentu. Kemudian saya menyadari bahwa itu tidak akan mudah ketika saya melihat cap waktu seperti 1991.


Saya suka semua jawaban ini, dan telah meningkatkan beberapa, dan belajar dari mereka. Tetapi terlintas dalam benak saya bahwa pertanyaannya tidak terdefinisi dengan baik: misalnya, kotak komputer saya telah melalui dua inkarnasi motherboard dan empat perubahan lengkap HDD dalam sepuluh tahun berjalan, dengan FS dibuang | dipulihkan setiap kali. Semua kunci publik ssh saya bertanggal 19 Februari 2001; tetapi root FS dibuat 11 Jun 2010, 20:59:01, ketika mobo terakhir ditingkatkan (bersama dengan cakram); namun tes lain memberikan hasil yang berbeda, dan itu terjadi pada saya: bagaimana Anda menentukan (tidak menemukan) usia sistem linux?
MadHatter mendukung Monica

4
Rupanya ini juga dikenal sebagai masalah Ship of Theseus; lihat en.wikipedia.org/wiki/Ship_of_Theseus .
MadHatter mendukung Monica

Saya selalu memiliki hdd dengan partisi yang ada sejak saya membeli mesin ... Saya meletakkan semua barang yang saya butuhkan untuk mencadangkan di sana ketika saya membeli drive baru atau membuat partisi root baru dengan kernel baru ... Tapi itu tidak terpikir oleh saya :-)
lisak

Jawaban:


47

Cara paling sederhana mungkin (menganggap sda1 adalah / root / Anda):

tune2fs -l / dev / sda1 | grep dibuat

Ini akan menunjukkan kepada Anda tanggal di mana sistem file dibuat. Dikonfirmasi untuk bekerja pada ext2 ke ext4, tidak yakin tentang sistem file lain!


1
Ketika saya mendapatkan drive baru untuk PC saya, saya biasanya membuat partisi di atasnya dan kemudian cp -adata berakhir. Jadi singkatnya: tidak mungkin untuk menentukan umur sistem dalam semua kasus.
Hubert Kario

Mungkin menggunakan /dev/rootsedikit lebih umum.
camh

Saya menginstal sistem baru dari yang sebelumnya, menjaga FSda1 FS, dan dengan demikian solusi MihaiM di bawah ini (kunci ssh) lebih akurat.
Dering Ø

14

Salah satu mekanisme yang sering saya gunakan adalah untuk memeriksa perubahan waktu (ctime) pada file dalam direktori home root. Karena /rootdirektori home dibuat pada waktu instalasi, dan sering jarang digunakan, ini dapat memberikan perkiraan yang relatif baik. Sebagaimana diklarifikasi oleh Kyle dalam komentar, karena ctime mengacu pada inode, dan bukan data, memodifikasi konten file tidak akan mengubah waktu.

Secara default, lsperintah mencetak waktu modifikasi (mtime) file. Jadi jika mengganti dalam opsi waktu seperti itu,

ls -alct /root

Ini akan mencetak semua file, menampilkan waktu pembuatan, dan mengurutkan berdasarkan waktu.

Sebagai contoh, berikut adalah contoh dari 3 file tertua di /rootdirektori dari salah satu sistem saya.

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

Dan kemudian dengan memeriksa waktu perubahan

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

Tanggal 18 Februari 2010 tentu melacak dengan perkiraan waktu saya pertama kali menginstal sistem itu.


4
ctime sebenarnya bukan waktu pembuatan file, melainkan waktu perubahan. Ini adalah kali terakhir saya melakukan perubahan ke inode. Jika Anda mengubah izin atau pemilik file ini akan berubah. Peluangnya adalah pemilik atau izin folder / root itu sendiri tidak berubah yang mengapa ini berbaris. (Saya tidak tahu apa c sebenarnya singkatan - Spesifikasi unix tunggal hanya memiliki "time_t st_ctime Waktu perubahan status terakhir".
Kyle Brandt

Memang, tanggal / waktu log pemasang. Yang mungkin ada atau tidak ada di sana tergantung pada distribusi / os Anda.
Koos van den Hout

6

mencoba

ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6

kunci dihasilkan ketika Anda menginstal os.


3
Ini adalah ide yang baik namun beberapa kelemahan telah ditemukan pada kunci SSH dan jika Anda telah melakukan pembaruan sistem (dan Anda harus melakukan pembaruan sistem!) Maka kunci akan dibuat ulang.
Josh

Ide bagus! Namun, jika kuncinya cukup baru, lsmenunjukkan tanggal secara berbeda (setidaknya pada mesin saya) sehingga cutperintah tidak berfungsi dengan benar. Sekarang saya akan gunakan stat -c %y /etc/ssh/ssh_host*pub. Juga, saya bertanya-tanya mengapa waktu pembuatan file belum mendapatkan lebih banyak cinta di Linux ...
Rennex

3

Memeriksa perangkat keras akan menjadi taruhan yang baik, jika Anda memiliki akses ke sana. Anda dapat memeriksa sistem dan / atau komponen perangkat keras untuk mendapatkan gambaran yang baik tentang kapan komponen itu dipasang.

Sebagai alternatif, jika Anda dapat memperoleh akses ke layar BIOS, sering ada info tanggal di sana yang dapat digunakan untuk menentukan usia mesin.

Jika Anda dapat memperoleh akses ke info SMART pada hard drive ( smartctl -a /dev/sda), mungkin ada sesuatu untuk dilanjutkan. Saya tidak melihat cap waktu tertentu dalam SMART tetapi setidaknya ada satu jam penghitung penggunaan. Itu akan memberikan batas yang lebih rendah pada berapa umur mesin (karena jika hard drive telah berjalan selama 100 jam, sistem tidak boleh lebih muda dari 100 jam).

Sedangkan untuk pemeriksaan filesystem, Anda bisa melihat info tanggal /lost+found- direktori itu dibuat ketika filesystem dibuat. Tanggal di atasnya harus setuju dengan info tunefs dari jawaban sebelumnya.


Memberi +1 untuk /lost+foundpetunjuk, karena informasi ini tersedia untuk pengguna yang tidak memiliki hak istimewa. Menjalankan operasi batch seperti tune2fs pada sistem file root karena superuser agak mengkhawatirkan. Selain itu, solusi ini berfungsi pada sistem file FreeBSD dan non-ext2 / 3/4.
Stefan Lasiewski

3

Dengan RedHat dan turunannya, cukup mudah untuk mendapatkan gambaran umum tentang versi OS / vintage melalui kombinasi umur file dan file sistem lainnya. Saya biasanya akan memeriksa /root/anaconda-ks.cfgfile, karena berisi pengaturan server awal dan parameter paket. Terkadang uname -aakan ada informasi yang bagus tentang tanggal pembuatan kernel. Juga akan ada sekelompok file dengan tanggal yang sama di /etc; biasanya tautan rcx.d, skrip rc, inittab, dll.


3

Ini juga berfungsi untuk sistem Red Hat:

rpm -qi basesystem | grep "Install Date"

Perhatikan bahwa ini (dan trik tune2fs) bekerja kurang baik dengan mesin virtual, jika mereka dipintal dari citra umum. Pemeriksaan kunci host ssh akurat di Linode saya.
cjc
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.