Kurulumdan bu yana bir linux sisteminin “yaşı” nasıl belirlenir?


39

Belirli dosyaların zaman damgasını kolayca kontrol edebileceğimi düşündüm. Sonra, zaman damgası gibi görünce o kadar kolay olmayacağını anladım 1991.


Tüm bu cevapları seviyorum, bazılarını geri aldım ve onlardan öğrendim. Ancak, benim için sorunun iyi tanımlanmadığı ortaya çıkıyor: örneğin, colo'ed kutum FS anakartıyla çalıştığımız on yıl içinde iki ana kart anakartı ve dört tam HDD değişiklik geçirdi. her seferinde restore edilmiştir. Tüm ssh genel anahtarlarım 19 Şubat 2001 tarihli; Ancak kök FS, mobo'nun en son yükseltildiği tarihte (disklerle birlikte), 11 Haziran 2010, 20:59:01; yine de diğer testler henüz farklı sonuçlar veriyor ve benim başıma geliyor: bir linux sisteminin yaşını nasıl tanımlar (keşfedilemez)?
MadHatter

4
Görünüşe göre bu, Theseus Gemisi problemi olarak da bilinir; Bakınız en.wikipedia.org/wiki/Ship_of_Theseus .
MadHatter

Makineyi aldığımdan beri var olan bir bölüme sahip her zaman bir hdd'ye sahibim ... Yeni bir sürücü alırken veya taze çekirdekli yeni bir kök bölüm oluştururken, geri almak için gereken her şeyi koydum ... Ama bu başıma gelmedi :-)
lisak

Yanıtlar:


47

En basit yol muhtemelen olabilir (sda1 olduğu varsayılırsa / root /):

tune2fs -l / dev / sda1 | grep oluşturuldu

Bu, size dosya sisteminin oluşturulduğu tarihi göstermelidir. Ext2 ile ext4 üzerinde çalıştığından emin olun, diğer dosya sistemlerinden emin değil!


1
Bilgisayarlarım için yeni bir sürücü aldığımda genellikle üzerinde bölümler oluĢtururum ve sonra cp -averileri aĢırıyorum. Kısacası: Her durumda sistemin yaşını belirlemek mümkün değildir.
Hubert Kario

Belki kullanmak /dev/rootbiraz daha geneldir.
camh

Önceki sistemin üzerine yeni bir sistem kurdum, sda1 FS'yi korudum ve bu nedenle MihaiM'in altındaki çözümü (ssh keys) daha doğru oldu.
Yüzük Ø

14

Sık kullandığım bir mekanizma, kök ana dizindeki dosyalardaki değişim zamanını (ctime) kontrol etmektir. Giriş /rootdizini yükleme sırasında oluşturulduğundan ve genellikle nadiren kullanıldığından, bu nispeten iyi bir yaklaşım sağlayabilir. Kyle tarafından açıklamalarda açıklandığı gibi, ctime veriye değil inode'a işaret ettiğinden, dosya içeriğini değiştirmek ctime değerini değiştirmeyecektir.

Varsayılan olarak, lskomut dosyanın değiştirme zamanını (mtime) yazdırır. Öyleyse, böyle bir ctime seçeneğinin yerine,

ls -alct /root

Bu, tüm dosyaları yazdırır, oluşturma zamanını görüntüler ve zamana göre sıralar.

Örnek olarak, /rootdizindeki en eski 3 dosyanın sistemimden birinden bir örneği .

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

Ve sonra değişim zamanını kontrol ederek

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

18 Şubat 2010 tarihi, kesinlikle bu sistemi ilk kurmuş olacağım süreyi izler.


4
ctime aslında bir dosyanın yaratma zamanı değil, değişim zamanıdır. Bu, inode'a yaptığım son değişiklik. Bir dosyanın izinlerini veya sahibini değiştirirseniz, bu değişecektir. Şanslar, / root klasörünün sahibinin veya izinlerinin değişmemesidir, bu yüzden bu sıraya giriyor. (C'nin gerçekte ne anlama geldiğini bilmiyorum - Tek bir unix özelliği sadece "time_t st_ctime Son durum değişiminin zamanı" na sahip.
Kyle Brandt

Aslında, yükleyici günlüğünün tarihi / saati. Dağıtımınıza / işletim sisteminize bağlı olarak hangisi olabilir veya olmayabilir.
Koos van den Hout,

6

Deneyin

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

os yüklediğinizde anahtarlar oluşturulur.


3
Bu iyi bir fikir ancak SSH anahtarlarında bazı zayıflıklar bulundu ve sistem güncellemelerini yaptıysanız (ve sistem güncellemelerini yapıyor olmalısınız!) O zaman tuşlar yenilenecekti.
Josh

Mükemmel fikir! Bununla birlikte, eğer anahtar yeterince lsyeniyse, tarihi (en azından makinemde) farklı bir şekilde gösterir; böylece cutkomut doğru çalışmaz. Şimdi kullanırdım stat -c %y /etc/ssh/ssh_host*pub. Ayrıca, dosya oluşturma zamanlarının neden Linux'ta daha fazla
sevilmediğini

3

Donanımı kontrol etmek, eğer erişiminiz varsa, iyi bir bahis olacaktır. Sistemin ve / veya donanım bileşenlerinin ne zaman monte edildiğine dair iyi bir fikir edinmek için inceleyebilirsiniz.

Alternatif olarak, BIOS ekranına erişebiliyorsanız, makinenin kaç yaşında olduğunu belirlemek için kullanılabilecek sık sık tarih bilgisi vardır.

Sabit sürücüdeki ( smartctl -a /dev/sda) SMART bilgilerine erişebiliyorsanız, devam edecek bir şeyler olabilir. SMART'da belirli bir zaman damgası göremiyorum, ancak en az bir saat kullanım sayacı var. Bu, makinenin kaç yaşında olduğu konusunda daha düşük bir sınır sağlayacaktır (çünkü eğer sabit disk 100 saat boyunca çalışıyorsa, sistem 100 saatten daha genç olamaz).

Dosya sistemi kontrolleri için /lost+found, dosya sistemi oluşturulduğunda bu dizinin yaratıldığı tarih bilgisine bakabilirsiniz . Tarihin önceki cevaptan gelen bilgiler hakkındaki bilgileri kabul etmesi gerekir.


/lost+foundAyrıcalıklı olmayan kullanıcılar için bu bilgi mevcut olduğundan ipucu için +1 . Süper kullanıcı olarak kök dosya sistemlerinde tune2fs gibi bir toplu işlemi çalıştırmak biraz endişe verici. Ek olarak, bu çözüm FreeBSD ve non2 / ext2 / 3/4 dosya sistemlerinde çalışmaktadır.
Stefan Lasiewski

3

RedHat ve türevleri ile, işletim sistemi sürümü / vintage hakkında genel bir fikir edinmek, dosya yaşı ve diğer sistem dosyalarını bir arada kullanmak oldukça kolaydır. /root/anaconda-ks.cfgİlk sunucu kurulumu ve paket parametrelerini içerdiği için genellikle dosyayı kontrol edeceğim . Bazen uname -açekirdek oluşturma tarihi hakkında iyi bilgi sahibi olur. Ayrıca aynı tarihte bir dosya kümesi olurdu /etc; genellikle rcx.d linkleri, rc scriptleri, inittab, vb.


3

Bu aynı zamanda Red Hat sistemleri için de geçerlidir:

rpm -qi basesystem | grep "Install Date"

Bunun (ve tune2fs numarası), ortak bir görüntüden döndürülmeleri durumunda sanal makinelerde daha az işe yaradığını unutmayın. Ssh ana bilgisayar tuşlarının kontrolü, benim Linode'mde doğru.
cjc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.