Apa cara distro-agnostik menentukan tanggal pemasangan OS?

10

Saya menggunakan mesin CrunchBang dan mencoba menulis skrip yang perlu memiliki tanggal pemasangan OS sebagai referensi.

Saya mencari dan menemukan perintah ini:

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

Mencetak

Mar 31 21:24

Saya tidak mengerti tail -1bagian itu, tetapi dapat mengetahui bahwa $ 6 $ 7 $ 8 adalah kejadian ke-7 ke-8 dari baris terakhir yang perintahnya rujuk.

Namun, saya menyadari bahwa tahun tidak dapat dimasukkan karena tahun itu tidak ditampilkan dalam ls -ltcperintah.

Beberapa orang menyarankan menemukan tanggal /etcdibuat dan beberapa memeriksa /var/log/syslogdll. Saya pikir ini mungkin sedikit spesifik untuk distro.

Apa rekomendasi Anda untuk cara distro-agnostik yang benar-benar menemukan tanggal pemasangan OS?

Animesh
sumber
1
Menurut Anda mengapa memeriksa /etctanggal pembuatan adalah khusus untuk distro?
Kevin
Baru-baru ini saya membaca bahwa ada beberapa distro yang memiliki hierarki sistem file yang berbeda seperti gobolinux dan mendapat kesan bahwa mungkin ada lebih banyak distro yang mirip dengan gobolinux.
Animesh
1
Saya pikir memeriksa / etc lebih portabel daripada mengasumsikan filesystem ext. Atau cukup periksa direktori tertua di /.
Kevin
1
Hanya untuk kelengkapan, saya akan perhatikan bahwa output ls menunjukkan waktu ketika kurang dari enam bulan, dan tahun ketika lebih dari enam bulan.
Random832
@Kevin jika Anda membongkar arsip sambil mempertahankan izin, direktori / file terlama bisa lebih tua dari tanggal pemasangan sistem.
scai

Jawaban:

8

Jika asumsinya adalah bahwa Anda memiliki sistem file ext {2,3,4}, dan Anda memformat sistem file root ketika Anda menginstal OS (dan tidak melakukan upgrade dari OS lain tanpa menghapus), Anda dapat menggunakan dumpe2fs:

% dumpe2fs -h /dev/mapper/vg_desktop-lv_root 2>&1 |grep 'Filesystem created'
Filesystem created:       Sat Jul 23 04:28:07 2011
jsbillings
sumber
Apakah output diarahkan ke suatu tempat atau file, karena tidak ada yang terjadi ketika saya menjalankan perintah.
Animesh
Anda harus menyediakan perangkat untuk sistem file root Anda, alih-alih / dev / mapper / vg_desktop-lv_root. Periksa output df /untuk mendapatkannya. Saya yakin Anda bisa mengotomatiskannya.
jsbillings
Saya menyadari bahwa saya memiliki _alih - alih -ketika mengetik perintah. Saya mendapatkan tanggal sekarang. Terima kasih.
Animesh
Atau Anda tidak membuat cadangan, memformat ulang, dan memulihkan.
psusi
3
Sistem file saya adalah reiserfs. Imho, mencari / etc adalah pendekatan yang lebih baik.
pengguna tidak diketahui
0

Saya tidak tahu metode formal apa pun untuk ini.

Apa yang selalu saya lakukan adalah:

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

Itu menciptakan file bernama 'install-' diikuti oleh tanggal saat ini (jika berjalan hari ini akan menginstal-2012-04-03) dan menjadikannya tidak dapat diubah, sehingga tidak dapat dihapus secara tidak sengaja.

Lalu apakah itu hanya masalah melihat file itu untuk melihat kapan OS diinstal.

benjarrell
sumber