Linuxシステムがインストールされてからどれくらい前になりますか?


97

Linuxシステムが最初にインストールされてからの時間を知るには、だれもシステムを隠そうとしなかった場合、どうすればよいですか?


年齢とはどういう意味ですか?
Let_Me_Be

@Let:設定されてからの時間。

1
@Let:「/ some / oscure / fileのタイムスタンプを確認してください、変更されません」という行に沿った答えを期待していました。それを答えてください。

2
それは、[Theseus 'ship](en.wikipedia.org/wiki/Ship_of_Theseus)の時代を尋ねるようなものではありませんか?
東武

2
Linuxインストールのすべての部分が長年にわたって置き換えられたとき、それはまだ同じインストールですか?(すべての部品がゆっくりと交換された船の元の例えと同じです)私の質問は、ルートパーティションがディスクとファイルシステムを変更し、ホームパーティションがそれより古いためです。一部のアプライアンスは、ゴールドイメージとして一度準備され、展開時にカスタムホスト名、sshホストキー、およびfs uuidを取得します。ゴールドイメージは、ターンキーLinux系統のように、修正して再度凍結することができます。
東武

回答:


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

これにより、ファイルシステムが作成された時期がわかります。

* =最初の列ではdf /、使用する正確なパーティションを見つけることができます。


4
通常/dev/sda1またはそのようなもの(df /最初の列に表示されているものは何でも)ですが、原則は健全です。
ジル

1
ねえ、知っておくと便利です、ありがとう。そして、この情報はファイルシステムをコピーしても生き残ります。+1。
ファヒムミタ

4
解決策は優れていますが、ファイルシステムに依存しており、ルート権限が必要です。
ゴーレム

7
+1。しかし、私は現在のデスクトップが1994年頃に作成されたことに注意する必要があります。それ以降、それに関するすべてが何度も変更されています(ディスク、使用するファイルシステムタイプを含む)が、それでも同じシステムです。この方法では、せいぜい、新しいファイルシステムへの最近の移動の日付のみがわかります。
cas

これは、私が使用していないext2(おそらくext4まで?)でのみ動作するため、受け入れられた答えではありません。
-soger

23

dumpe2fsでルートファイルシステムの日付を確認します。あなたが探している日付以外にそれがどのようになり得るか、私は本当に考えることができません:

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

1
...またはtune2fs -l
-forcefsck

2
これはext2 / ext3 / ext4ファイルシステムにのみ適用可能であることを忘れていました。
-Let_Me_Be

いくつかのマシンで間違った日付を取得することになります。ここでは、ハードドライブをアップグレードし、インストールをコピーしました。
デロバート

1
@ derobert、OPの質問を考えると、私の答えはまだ正しいと思います。新しいディスクは新しいRAMと何も変わりません。新しいディスクをポップしたとしても、同じ「インストール」が残っています...
pboin

@pboinいいえ、インストールをコピーするとき、その大きなディスクなので、パーティションを再分割してmkfsします(ddではなくtar / cpを使用してコピーします)。別のファイルシステム(たとえば、ext2-> ext3-> ext4)である可能性もあります。そのため、インストールをコピーする時間が得られます。これが、OPが探している日付以外の可能性がある方法です。
derobert

16

いくつかの日付があります。

  • すべてのファイルには日付があります。
  • ログファイルには日付が含まれています。

DebianまたはUbuntuおよびそれらの派生物では/var/log/installer/syslog、明確な答えが存在する場合、それが点滴のログの一部であるのを参照してください。

しかし、これは保証されていないことに注意してください。(機能しない可能性のある理由については、他の回答/コメントを参照してください。)


ただし、これはDebian / Ubuntuに固有の場合があります。
ファヒムミタ

@Faheem Mitha:同じファイル/ディレクトリがUbuntuに使用されます。
-BillThor

1
@ビル:はい、Debian / Ubuntuに特化したと言いました。レシピの意味はDebianとUbuntuの両方で機能しますが、他の(Debianベースでない)Linuxディストリビューションでは機能しない可能性があります。
ファヒムミタ

ただし、すべてのファイルに作成日があるわけではありません。AFAIKの誕生日はext4でのみ導入されたもので、とにかくPOSIXではありません。
コンラッドガジェウスキ

@KonradGajewskiしかし、この答え、またはそのコメントのいずれかがファイル作成日について言及していません。
ctrl-alt-delor

12

Red Hatベースのディストリビューション(CentOS、Scientific、Oracleなど)では、次を使用できます。

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.

または

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

1
どうしてrpm -qi私に与えInstall Date: Mon 07 Jul 2014 03:20:44 PM UTCながら、tune2fs言うはFilesystem created: Sat Dec 20 23:41:41 2014
ベンジャミン

回転数が全く信頼できないので、私のAzureのVM上のすべては、同じ時間を持っている
クリス・

10

ファイルシステムとディストリビューション(私が思いつくことができる)に最も中立な解決策はls -lact /etc、で指定された最も古いファイルを使用することです。これは、作成時に各ファイルのメタデータを調べます。これはゲーム化できますが、touchアーカイブの抽出によって作成されたファイルや影響を受けません(tar -pタイムスタンプを保持するためなど)。

ディレクトリコンテンツの変更時に作成時間のメタデータを変更するため、ディレクトリでなくファイルを参照するのが最善だと思います(おそらく誰かがその理由を明らかにできるでしょうか?)

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

GNU Coreutilsを欠いているシステムでは、--full-timeオプションを削除する必要があります(ソート順は依然として正しいため、その日は引き続き取得できます)。でファイルのメタデータから作成時間を取得できstat FILE |grep Changeます(リストされている最も古いファイルで実行しますls -lact)。

他のLinux以外のシステムでstatは、おそらく異なる情報が必要になる可能性があります。これはまだファイルのメタデータを使用し、正確性は保証されないことに注意してください。

また、ご注意statGNUのCoreutilsから間違っている傾向にある「誕生」時間がある(とLinuxのext4のの利回り0それは不明だ示すために、とFreeBSDのUFSは私が照会システムよりも古い「誕生」の時間を示しました)。正しい値が「変更」時間としてリストされました。

あなたが空想を得て、最も古いファイルの作成時間だけを取得したい場合/etc

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

このコマンドは、古いFreeBSDシステム(UFS、GNU utilsなし)で機能しました。

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

(はい、これは解析されls、それはタブーですが、にいたずらな名前のファイルがあってはいけません/etc。)

stat他の時間形式を取得するためにも使用できます。たとえば、Unixエポックの作成時間を取得するには:stat -c %Z FILE(GNUを使用すると、%Z「最終ステータス変更の%W時間」ですが、上記のようにLinuxおよびBSDシステムの正しいフラグであることに注意してください。)またはstat -f %c FILE(BSDを使用)。


6

Fedoraでは、anacondaインストーラーはインストールの設定の詳細をルートのホームフォルダーに保存します。

Debian(少なくとも最新のもの)では、インストールのいくつかのログがに保存され/var/log/installer/ます。古いバージョンでは、それらをに保存していました/var/log/installer.*。少なくとも2003年までさかのぼります。


4

OPの要求どおり。

システムをセットアップしたときに時間を探している場合、それを判断する方法はありません。1つは、ファイルの作成時間を効果的に偽造する、システムが複製されている(インストールされていない)場合です。

最も古いファイルを検索することで、年齢を推定できます。


mattdmは正しい。アクセス時間、変更時間、および変更時間を取得できます。ctimeが最後です。このSO投稿を
マイケルMrozek


2

/ bootの最も古いファイルを調べます( "ls -ltr / boot"の先頭。多くの場合、最初のインストールからの元のブートセクターがあります。私の最も古いシステムでは、これは、マシンとファイルシステムの内容を数回コピーしました:)


2

私は同様のツールを探していましたがls -lAhF /etc/hostname、思いついたのは、単にホスト名ファイルの年齢でした。一般的に、システムのホスト名は最初に設定され、システムの寿命の間は変更されないままだと思います。ファイルシステムの作成日は確かに役立ちますが、誤解を招く可能性があります。たとえば、私はよく前にインストールした仮想マシンイメージを使用し、それをコピーして、ホスト名を変更し、そこから新しいサーバーを作成します。したがって、私の場合/etc/hostnameは、tune2fs -l /dev/sda1


1

インストール中にLVMを使用した場合、インストール日に行われた論理ボリュームの作成日を確認できます。例:

$ 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 ->インストール時にルートホームディレクトリが作成されます


1
しかし、その後変更された可能性があります。/カーネルが保持されていない場合、時間が変更される可能性はわずかに低くなりますが/、それでもまだあまり良い指標ではありません。(注意:-c作成時間ではなく、メタデータの変更時間です。ほとんどのUNIXファイルシステムは、ファイルの作成時間を保存しません。)
Gilles

変更できないときはいつでも私に見せてください:)
ジェット

質問には「誰もそれを隠そうとしない」という仮定がありました。のctimeは/root自然に変わる可能性があります(たとえば、誰かがそこでファイルを作成するたびに)。
ジル

0

しばらく前から、LinuxディストリビューションにTuptimeというパッケージをほぼ同時にインストールします。これは、実行時間、起動、シャットダウンに関する有用な統計を保持しています...

質問については、「システム寿命」の行にその情報があります。例として:

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

詳細:https : //github.com/rfrail3/tuptime/



-4

簡単なファイルを見つけました。名前「1」。おそらく最初のファイルです。

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

なぜ投票する。この時間は、実際にシステムが最後にインストールされた時間を指し示しています。
utopic eexpress

Linuxにはこのファイルがありません。
ケビンルメール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.