Bir Linux sisteminin ne kadar süre önce kurulduğunu nasıl bulabilirim?


97

Bir Linux sistemi ilk kurulduğundan beri, kimsenin onu saklamaya çalışmadığı sürece, nasıl bulabilirim?


Ne demek istiyorsun?
Let_Me_Be 23:11

@Let: Kurulduğundan beri geçen süre.

1
@Let: "/ / / oscure / dosyasının zaman damgasını kontrol et, asla değiştirilmez" satırları boyunca bir cevap bekliyordum. Lütfen bir cevap ver.

2
Bu [Theseus'un gemisi] yaşını istemek gibi bir şey değil mi (en.wikipedia.org/wiki/Ship_of_Theseus)?
Tobu,

2
Linux kurulumunun her parçası yıllar içinde değiştirildiğinde, yine de aynı kurulum mu? (Tüm parçaları yavaşça değiştirilen bir geminin orijinal benzetmesiyle aynıdır) Soruyorum çünkü kök bölümüm diskleri ve dosya sistemlerini değiştirdi ve ev bölümüm bundan daha eski. Bazı cihazlar bir kez altın görüntü olarak hazırlanır, ardından özel ana bilgisayar adları, ssh ana bilgisayar anahtarları ve dağıtımda fU uuid'ler elde edilir. Anahtar teslimi linux soyağacı gibi, altın görüntüler yeniden değiştirilebilir ve dondurulabilir.
Tobu,

Yanıtlar:


99
tune2fs -l /dev/sda1 **OR** /dev/sdb1*  | grep 'Filesystem created:'

Bu, dosya sisteminin ne zaman oluşturulduğunu size söyleyecektir.

* = İlk sütunda, df /kullanılacak tam bölümü bulabilirsiniz.


4
Genellikle /dev/sda1ya da onun gibi bir şey ( df /ilk sütunda ne varsa), ama ilke sestir.
Gilles,

1
Hey, bunu bilmek kullanışlı, teşekkürler. Ve bu bilgi dosya sisteminin kopyalanmasında da hayatta kalır. +1.
Faheem Mitha

4
Çözüm iyi, ancak dosya sistemine bağlı ve kök ayrıcalıkları gerektiriyor.
golem

7
+1. Ancak, mevcut masaüstümün 1994 civarında oluşturulduğunu not etmek zorundayım. Bu konuda kesinlikle her şey o zamandan beri birçok kez değişti (diskler ve kullandığım dosya sistemi türü dahil) ancak yine de aynı sistem. Bu yöntem yalnızca en iyi ihtimalle yeni bir dosya sistemine yapılan en son hamlenin tarihini söyleyecek.
kas

Bu kabul edilen cevap olmamalı çünkü kullanmadığım sadece ext2 (belki ext4'e kadar?) İle çalışıyor.
soger

23

Kök dosya sisteminin tarihini dumpe2fs ile kontrol edin. Bunun, aradığınız tarihten başka bir şey olabileceğini düşünemiyorum:

dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') | grep 'Filesystem created:'

1
... veyatune2fs -l
forcefsck 23.03

2
Bunun sadece ext2 / ext3 / ext4 dosya sistemine uygulanabilir olduğunu söylemeyi unuttun.
Let_Me_Be

Sabit diskleri yükselttiğim birkaç makinemde yanlış tarih aldınız ve kurulumu yeni kopyaladım.
derobert,

1
@derobert, OP'lerin sorusu üzerine hala cevabımın doğru olacağını düşünüyorum. Yeni bir disk, yeni RAM'den farklı değildir - yeni bir disk yerleştirmiş olsanız bile, yine de 'kuruluma' sahipsiniz ...
pboin

@pboin Hayır, yüklemeyi kopyaladığımda, daha büyük bir disktir, bu yüzden yeniden bölümlerim ve mkfs (sonra kopyalamak için tar / cp kullanın, dd'yi değil). Hatta farklı bir dosya sistemi olabilir (örneğin, ext2 -> ext3 -> ext4) Böylece, kurulumu bittiğim zamana sahip olursunuz. OP'nin aradığı tarihten farklı olabilir.
derobert

16

Yalan söyleyen birkaç buluşma var.

  • Tüm dosyaların tarihleri ​​var.
  • Günlük dosyalarının içinde tarihler vardır.

Debian veya Ubuntu ve türevlerinde, /var/log/installer/syslogeğer var ise, kesinleşme cevabını, damlatma günlüğünün bir parçası olarak görün.

Ancak bunun garanti edilmediğine dikkat edin. (Çalışmama nedenlerinden bazıları için diğer cevaplara / yorumlara bakınız.)


Bu olsa Debian / Ubuntu'ya özgü olabilir.
Faheem Mitha

@Faheem Mitha: Ubuntu için aynı dosya / dizin kullanılır.
BillThor

1
@Bill: Evet, Debian / Ubuntu'ya özel dedim. Yani tarif, hem Debian hem de Ubuntu için işe yarar, ancak diğer (Debian tabanlı olmayan) Linux dağıtımları için işe yaramaz.
Faheem Mitha

Ancak tüm dosyaların bir oluşturma tarihi yoktur. AFAIK doğum tarihi sadece ext4'te tanıtıldı ve yine de POSIX değil.
Konrad Gajewski

@KonradGajewski Ancak bu cevabı netler veya yorumlarından herhangi biri dosya oluşturma tarihinden söz eder.
ctrl-alt-delor

12

Red Hat tabanlı dağıtımlarda (örneğin CentOS, Scientific, Oracle vb.) Kullanabilirsiniz:

rpm -qi basesystem
Name        : basesystem
Version     : 10.0
Release     : 7.el7
Architecture: noarch
Install Date: Mon 02 May 2016 19:20:58 BST
Group       : System Environment/Base
Size        : 0
License     : Public Domain
Signature   : RSA/SHA256, Tue 01 Apr 2014 14:23:16 BST, Key ID     199e2f91fd431d51
Source RPM  : basesystem-10.0-7.el7.src.rpm
Build Date  : Fri 27 Dec 2013 17:22:15 GMT
Build Host  : ppc-015.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor      : Red Hat, Inc.
Summary     : The skeleton package which defines a simple Red Hat Enterprise Linux system
Description :
Basesystem defines the components of a basic Red Hat Enterprise Linux
system (for example, the package installation order to use during
bootstrapping). Basesystem should be in every installation of a system,
and it should never be removed.

veya

rpm -q basesystem --qf '%{installtime:date}\n'
Mon 02 May 2016 19:20:58 BST

1
Nasıl yani rpm -qibana verir Install Date: Mon 07 Jul 2014 03:20:44 PM UTCiken tune2fsdiyor Filesystem created: Sat Dec 20 23:41:41 2014?
Benjamin

Azure’in VM’inde hepsinin aynı zamanı var, bu yüzden rpm hiç güvenilir değil
Chris

10

Dosya sistemi ve dağıtım için en nötr olan çözüm (bulabildiğim kadarıyla), ls -lact /etcher bir dosyanın meta verilerini oluşturma süresi boyunca inceleyen tarafından verilen en eski dosyayı kullanmaktır . Bu oyun oynanabilmesine rağmen, toucharşivlerin çıkarılmasıyla yaratılan dosyalardan veya dosyalardan etkilenmez (örn tar -p. Zaman damgalarını korumak için).

Ben dizinleri sonra dosyalarda yerine dizinleri bakmak en iyisi yapmak içerikleri değiştirdiğinizde onların oluşturulma zamanı meta verileri değiştirme (belki birileri bu nedenine ışık tutabilir?)

ls -lact --full-time /etc |tail

GNU Coreutils içermeyen sistemler --full-timeseçeneği kaldırmalıdır (sıralama düzeni hala doğru olacak ve hala günü alacaksınız). Oluşturma zamanını bir dosyanın meta verilerinden alabilirsiniz stat FILE |grep Change(tarafından listelenen en eski dosyada çalıştırın ls -lact).

Diğer Linux dışı sistemlerde, statmuhtemelen farklı bayraklar gerektiren bu bilgiyi biraz farklı bir düzende vardır. Bunun hala dosyanın meta verilerini kullandığını ve doğruluğunun garanti edilmediğini unutmayın.

Ayrıca unutmayın statGNU coreutils yanlış olma eğilimindedir bir "Birth" zamanı var dan (Linux ext4 verim 0bilinmeyen var göstermek için, ile FreeBSD UFS ben sorgulanan sistemin daha eski bir "Birth" zaman gösterdi). Doğru değer "Değiştirme" zamanı olarak listelenmiştir.

Fantezi ve sadece en eski dosyanın yaratma zamanını almak istiyorsanız /etc:

ls -lact --full-time /etc |awk 'END {print $6,$7,$8}'

Bu komut benim için eski bir FreeBSD sisteminde çalıştı (UFS, GNU araçları yok):

stat "/etc/$(ls -act /etc |tail -1)" |awk -F\" '{print $6}'

(Evet, bu ayrıştırıyor lsve bu tabu, ama yaramaz şekilde adlandırılmış dosyalar olmamalı /etc.)

statDiğer zaman biçimlerini almak için de kullanabilirsiniz . Örneğin, Unix çağında yaratma zamanını almak için : stat -c %Z FILE(GNU ile, %Z"son durum değişim zamanı" dır, ancak yukarıda belirtildiği gibi Linux ve BSD sistemlerim için doğru bayrak %Wbudur; "dosya doğum zamanı" dır. ) veya stat -f %c FILE(BSD ile).


6

Fedora'da, anaconda yükleyicisi, kurulumunuzun yapılandırma ayrıntılarını kökünün ana klasöründe depolar ve bu da size bir fikir verebilir.

Debian'da (en azından daha yeni olanları), kurulumdan birkaç günlük kaydedilmiştir /var/log/installer/. Eski sürümler onları saklar /var/log/installer.*. Bu en azından 2003 yılına döndü.


4

OP tarafından talep edildiği gibi.

Zaman arıyorsanız, sistem kurulduğunda, bunu belirlemenin bir yolu yoktur. Birincisi, sistem dosya oluşturma zamanını etkili bir şekilde sahte klonlanmış (kurulmamış) olabilir.

En eski dosyaları arayarak yaşını tahmin edebilirsiniz.


mattdm haklı; erişim zamanını, değiştirme zamanını ve zamanını değiştirebilirsin; ctime sonuncusu. Bu SO
yazısına


2

/ Boot'daki en eski dosyaya baktım ("ls -ltr / boot" nin en üstünde yer alıyor. Genellikle ilk kurulumdan itibaren orijinal bir önyükleme sektörü var. makine ve dosya sisteminin içeriğini birkaç kez kopyaladı :)


2

Benzer bir araç arıyordum ve bulabildiğim en iyi şey ls -lAhF /etc/hostname, yalnızca ana bilgisayar adı dosyasının yaşıydı. Bence, genel olarak, bir sistemin ana bilgisayar adı başında ayarlanmış ve sistemin ömrü boyunca değişmeden bırakılmıştır. Dosya sisteminin oluşturulmasının tarihi çok yararlıdır, ancak yanıltıcı olabilir. Örneğin, genellikle bir süre önce yüklediğim sanal makineler görüntüsünü kullanıyorum, kopyaladım, ana bilgisayar adını değiştirip ondan yeni bir sunucu oluşturdum. Bu nedenle, benim durumumda /etc/hostnamedaha iyi bir göstergedirtune2fs -l /dev/sda1


1

Kurulum sırasında LVM'yi kullandıysanız, kurulum gününde yapılan bir Mantıksal Birimin oluşturulma tarihini kontrol edebilirsiniz, örneğin:

$ sudo lvdisplay /dev/mapper/KUbuntu_VG-rootFS | grep Creation
  LV Creation host, time kubuntu, 2014-12-28 20:52:15 +0100

0

ls -alct /root -> root home dizini kurulum sırasında oluşturulur


1
Ancak daha sonra değişmiş olabilir. Zaman /çekirdeği muhafaza değilse değişmiş biraz daha az olasıdır /, ama yine de çok iyi bir gösterge değil. (Hatırlatma: -coluşturma zamanı değil, meta veri değiştirme zamanıdır. Çoğu unix dosya sistemi bir dosyanın yaratma zamanını depolamaz.)
Gilles

değiştirilemeyecek herhangi bir zaman bana göster :)
jet

Soru “kimsenin onu saklamaya çalışmadığı sürece” varsayımına sahipti. Ait ctime /rootdoğal olarak olası değişme (örn her zaman birileri bir dosya oluşturur).
Gilles

0

Bir süre önce genellikle linux dağıtımını Tuptime adında bir paketle yüklerim , bu da çalışma süresi, başlangıçlar, kapatmalar hakkında faydalı istatistikler tutar.

Sorularınız için "Sistem ömrü" satırı bu bilgilere sahiptir. Örnek olarak:

System startups:    110   since   10:15:27 08/08/15
System shutdowns:   107 ok   -   2 bad
System uptime:      4.04 %   -   1 days, 22 hours, 4 minutes and 44 seconds
System downtime:    95.96 %   -   45 days, 13 hours, 57 minutes and 30 seconds
System life:        47 days, 12 hours, 2 minutes and 15 seconds

Largest uptime:     2 hours, 10 minutes and 44 seconds   from   20:49:17 09/08/15
Shortest uptime:    9 seconds   from   10:23:36 08/08/15
Average uptime:     25 minutes and 8 seconds

Largest downtime:   7 days, 10 hours, 17 minutes and 26 seconds   from   06:09:45 10/08/15
Shortest downtime:  15 seconds   from   19:27:24 19/09/15
Average downtime:   9 hours, 56 minutes and 42 seconds

Current uptime:     23 minutes and 33 seconds   since   21:54:09 24/09/15

Daha fazla bilgi: https://github.com/rfrail3/tuptime/


0

Bu başka bir yol

# rpm -q -last basesystem
basesystem-10.0-7.el7.noarch                  Tue 11 Jul 2017 03:57:52 PM UTC

-4

Basit bir dosya buldum. "1" adını verin. Belki de ilk dosyadır.

▶ ls -lact --full-time /1
-rw-r--r--. 1 root root 0 2017-03-23 12:02:46.880994133 +0800 /1

neden aşağı oy. Bu zaman gerçekten sistemin en son kurulu zamanına işaret ediyor.
ütopik,

Linux'umda bu dosya yok.
Kevin Lemaire
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.