OSのインストール日を決定する非破壊的な方法は何ですか?


10

私はCrunchBangマシンを使用しており、OSのインストール日を参照する必要があるスクリプトを記述しようとしています。

私はこのコマンドを検索して見つけました:

ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'

印刷する

Mar 31 21:24

そのtail -1部分は理解できませんでしたが、$ 6 $ 7 $ 8は、コマンドが参照している最後の行の6番目、7番目、8番目の出現であることがわかりました。

ただし、ls -ltcコマンドに年が表示されないため、年を含めることができないことに気付きました。

一部の人々は、日付/etcが作成されたことを見つけることを提案し、一部はチェック/var/log/syslogなどを行いました。これらは、ディストリビューションに固有のものかもしれないと思いました。

OSのインストール日を見つけるための本当に非破壊的な方法に対するあなたの推奨は何ですか?


1
/etcの作成日をチェックするのがディストリビューション固有であると思うのはなぜですか?
ケビン

私は最近、gobolinuxのように異なるファイルシステム階層を持ついくつかのディストリビューションがあることを読み、gobolinuxに似たより多くのディストリビューションがあるかもしれないという印象を受けました。
Animesh

1
/ etcのチェックは、extファイルシステムを想定するよりも移植性が高いと思います。または、で最も古いディレクトリを確認してください/
ケビン

1
完全を期すために、lsの出力は、6か月以内の時間と6か月以上の年を示していることに注意します。
Random832

@Kevinパーミッションを保持しながらアーカイブを解凍すると、最も古いディレクトリ/ファイルがシステムのインストール日よりもかなり古い可能性があります。
scai

回答:


8

ext {2,3,4}ファイルシステムがあり、OSのインストール時にルートファイルシステムをフォーマットした(そして、ワイプなしで別のOSからのアップグレードを行わなかった)と想定している場合は、dumpe2fsを使用できます。

% dumpe2fs -h /dev/mapper/vg_desktop-lv_root 2>&1 |grep 'Filesystem created'
Filesystem created:       Sat Jul 23 04:28:07 2011

コマンドを実行しても何も起こらなかったため、出力はどこかまたはファイルにリダイレクトされていましたか。
Animesh 2012

/ dev / mapper / vg_desktop-lv_rootの代わりに、ルートファイルシステム用のデバイスを提供する必要があります。の出力を確認しdf /て取得します。自動化できると思います。
jsbillings 2012

コマンドを入力するときの_代わりに自分がいることに気付きました-。私は今日付を取得します。ありがとう。
Animesh

または、バックアップ、再フォーマット、および復元しなかったということです。
psusi

3
私のファイルシステムはreiserfsです。Imho、/ etcを探す方が良いアプローチです。
ユーザー不明

0

このための正式な方法は知りません。

私がいつもやっていることは:

touch /install-`date +"%F"` && chattr +i /install-20*

これにより、「install-」という名前の後に現在の日付が続くファイルが作成され(今日実行した場合、install-2012-04-03になります)、不変に設定されるため、誤って削除することはできません。

次に、そのファイルを見てOSがいつインストールされたかを確認するだけです。

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