特定のファイルのタイムスタンプを簡単に確認できると思いました。それから私はのようなタイムスタンプを見たときそれほど簡単でないことに気付きました1991
。
特定のファイルのタイムスタンプを簡単に確認できると思いました。それから私はのようなタイムスタンプを見たときそれほど簡単でないことに気付きました1991
。
回答:
最も簡単な方法はおそらく次のとおりです(sda1が/ root /であると仮定):
tune2fs -l / dev / sda1 | 作成されたgrep
これにより、ファイルシステムが作成された日付が表示されます。ext2からext4で動作することを確認しましたが、他のファイルシステムについてはわかりません!
cp -a
データを上書きします。つまり、すべてのケースでシステムの年齢を判断することは不可能です。
/dev/root
はもう少し一般的です。
私がよく使用するメカニズムの1つは、ルートホームディレクトリ内のファイルの変更時間(ctime)を確認することです。以来/root
ホームディレクトリはインストール時に作成され、多くの場合、ほとんど使用されていない、これは比較的良好な近似を提供することができます。Kyleがコメントで明らかにしたように、ctimeはデータではなくinodeを参照するため、ファイルの内容を変更してもctimeは変更されません。
デフォルトでは、ls
コマンドはファイルの変更時刻(mtime)を出力します。そのため、ctimeオプションをそのように置き換えた場合、
ls -alct /root
これにより、すべてのファイルが印刷され、作成時間が表示され、時間で並べ替えられます。
例として、/root
私のシステムの1つにあるディレクトリ内の3つの最も古いファイルのサンプルを次に示します。
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
そして、変更時間をチェックすることにより
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
2010年2月18日の日付は、私がそのシステムを最初にインストールしたおおよその時間で確実に追跡します。
試してみる
ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6
OSのインストール時にキーが生成されます。
ls
、cut
コマンドが正しく機能しないため、日付が(少なくとも私のマシンでは)異なって表示されます。私は今使用しますstat -c %y /etc/ssh/ssh_host*pub
。また、なぜLinuxでファイル作成時間がこれ以上愛されていないのか疑問に思います
ハードウェアにアクセスできるのであれば、ハードウェアをチェックするのがいいでしょう。システムやハードウェアのコンポーネントを検査して、いつ組み立てられたかを知ることができます。
また、BIOS画面にアクセスできる場合は、多くの場合、マシンの古さを判断するために使用できる日付情報があります。
ハードドライブのSMART情報(smartctl -a /dev/sda
)にアクセスできる場合は、何かすることがあります。SMARTに特定のタイムスタンプは表示されませんが、少なくとも1時間の使用カウンタがあります。これは、マシンの古さの下限を提供します(ハードドライブが100時間実行されている場合、システムは100時間未満にならないため)。
ファイルシステムのチェックについては、日付情報を見ることができます/lost+found
-そのディレクトリは、ファイルシステムの作成時に作成されました。その日付は、前の回答のtunefs情報と一致する必要があります。
/lost+found
この情報は非特権ユーザーが利用できるため、ヒントとして+1 。スーパーユーザーとしてrootファイルシステムでtune2fsのようなバッチ操作を実行するのは少し心配です。さらに、このソリューションは、FreeBSDおよび非ext2 / 3/4ファイルシステムで動作します。