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?
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!
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.
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
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.
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.
Jawaban:
Cara paling sederhana mungkin (menganggap sda1 adalah / root / Anda):
Ini akan menunjukkan kepada Anda tanggal di mana sistem file dibuat. Dikonfirmasi untuk bekerja pada ext2 ke ext4, tidak yakin tentang sistem file lain!
sumber
cp -a
data berakhir. Jadi singkatnya: tidak mungkin untuk menentukan umur sistem dalam semua kasus./dev/root
sedikit lebih umum.Salah satu mekanisme yang sering saya gunakan adalah untuk memeriksa perubahan waktu (ctime) pada file dalam direktori home root. Karena
/root
direktori 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,
ls
perintah mencetak waktu modifikasi (mtime) file. Jadi jika mengganti dalam opsi waktu seperti itu,Ini akan mencetak semua file, menampilkan waktu pembuatan, dan mengurutkan berdasarkan waktu.
Sebagai contoh, berikut adalah contoh dari 3 file tertua di
/root
direktori dari salah satu sistem saya.Dan kemudian dengan memeriksa waktu perubahan
Tanggal 18 Februari 2010 tentu melacak dengan perkiraan waktu saya pertama kali menginstal sistem itu.
sumber
mencoba
kunci dihasilkan ketika Anda menginstal os.
sumber
ls
menunjukkan tanggal secara berbeda (setidaknya pada mesin saya) sehinggacut
perintah tidak berfungsi dengan benar. Sekarang saya akan gunakanstat -c %y /etc/ssh/ssh_host*pub
. Juga, saya bertanya-tanya mengapa waktu pembuatan file belum mendapatkan lebih banyak cinta di Linux ...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.sumber
/lost+found
petunjuk, 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.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.cfg
file, karena berisi pengaturan server awal dan parameter paket. Terkadanguname -a
akan 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.sumber
Ini juga berfungsi untuk sistem Red Hat:
sumber