Linuxシステムが最初にインストールされてからの時間を知るには、だれもシステムを隠そうとしなかった場合、どうすればよいですか?
Linuxシステムが最初にインストールされてからの時間を知るには、だれもシステムを隠そうとしなかった場合、どうすればよいですか?
回答:
tune2fs -l /dev/sda1 **OR** /dev/sdb1* | grep 'Filesystem created:'
これにより、ファイルシステムが作成された時期がわかります。
* =最初の列ではdf /
、使用する正確なパーティションを見つけることができます。
/dev/sda1
またはそのようなもの(df /
最初の列に表示されているものは何でも)ですが、原則は健全です。
dumpe2fsでルートファイルシステムの日付を確認します。あなたが探している日付以外にそれがどのようになり得るか、私は本当に考えることができません:
dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') | grep 'Filesystem created:'
tune2fs -l
いくつかの日付があります。
DebianまたはUbuntuおよびそれらの派生物では/var/log/installer/syslog
、明確な答えが存在する場合、それが点滴のログの一部であるのを参照してください。
しかし、これは保証されていないことに注意してください。(機能しない可能性のある理由については、他の回答/コメントを参照してください。)
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
rpm -qi
私に与えInstall Date: Mon 07 Jul 2014 03:20:44 PM UTC
ながら、tune2fs
言うはFilesystem created: Sat Dec 20 23:41:41 2014
?
ファイルシステムとディストリビューション(私が思いつくことができる)に最も中立な解決策はls -lact /etc
、で指定された最も古いファイルを使用することです。これは、作成時に各ファイルのメタデータを調べます。これはゲーム化できますが、touch
アーカイブの抽出によって作成されたファイルや影響を受けません(tar -p
タイムスタンプを保持するためなど)。
ディレクトリはコンテンツの変更時に作成時間のメタデータを変更するため、ディレクトリではなくファイルを参照するのが最善だと思います(おそらく誰かがその理由を明らかにできるでしょうか?)
ls -lact --full-time /etc |tail
GNU Coreutilsを欠いているシステムでは、--full-time
オプションを削除する必要があります(ソート順は依然として正しいため、その日は引き続き取得できます)。でファイルのメタデータから作成時間を取得できstat FILE |grep Change
ます(リストされている最も古いファイルで実行しますls -lact
)。
他のLinux以外のシステムでstat
は、おそらく異なる情報が必要になる可能性があります。これはまだファイルのメタデータを使用し、正確性は保証されないことに注意してください。
また、ご注意stat
GNUの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を使用)。
OPの要求どおり。
システムをセットアップしたときに時間を探している場合、それを判断する方法はありません。1つは、ファイルの作成時間を効果的に偽造する、システムが複製されている(インストールされていない)場合です。
最も古いファイルを検索することで、年齢を推定できます。
私は同様のツールを探していましたがls -lAhF /etc/hostname
、思いついたのは、単にホスト名ファイルの年齢でした。一般的に、システムのホスト名は最初に設定され、システムの寿命の間は変更されないままだと思います。ファイルシステムの作成日は確かに役立ちますが、誤解を招く可能性があります。たとえば、私はよく前にインストールした仮想マシンイメージを使用し、それをコピーして、ホスト名を変更し、そこから新しいサーバーを作成します。したがって、私の場合/etc/hostname
は、tune2fs -l /dev/sda1
ls -alct /root
->インストール時にルートホームディレクトリが作成されます
/
カーネルが保持されていない場合、時間が変更される可能性はわずかに低くなりますが/
、それでもまだあまり良い指標ではありません。(注意:-c
作成時間ではなく、メタデータの変更時間です。ほとんどのUNIXファイルシステムは、ファイルの作成時間を保存しません。)
/root
自然に変わる可能性があります(たとえば、誰かがそこでファイルを作成するたびに)。
しばらく前から、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
これは別の方法です
# rpm -q -last basesystem
basesystem-10.0-7.el7.noarch Tue 11 Jul 2017 03:57:52 PM UTC
簡単なファイルを見つけました。名前「1」。おそらく最初のファイルです。
▶ ls -lact --full-time /1
-rw-r--r--. 1 root root 0 2017-03-23 12:02:46.880994133 +0800 /1