Bagaimana saya dapat menemukan waktu sejak sistem Linux pertama kali diinstal, asalkan tidak ada yang mencoba menyembunyikannya?
Bagaimana saya dapat menemukan waktu sejak sistem Linux pertama kali diinstal, asalkan tidak ada yang mencoba menyembunyikannya?
Jawaban:
tune2fs -l /dev/sda1 **OR** /dev/sdb1* | grep 'Filesystem created:'
Ini akan memberi tahu Anda ketika sistem file dibuat.
* = Di kolom pertama df /
Anda dapat menemukan partisi yang tepat untuk digunakan.
/dev/sda1
atau sesuatu seperti itu (apa pun yang df /
ditampilkan di kolom pertama), tetapi prinsipnya sehat.
Periksa tanggal filesystem root dengan dumpe2fs. Saya benar-benar tidak bisa memikirkan bagaimana hal itu bisa terjadi selain dari tanggal yang Anda cari:
dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') | grep 'Filesystem created:'
tune2fs -l
Ada beberapa kurma tergeletak di sekitar.
Pada Debian atau Ubuntu dan turunannya, lihat /var/log/installer/syslog
jawaban definitif jika ada, itu adalah bagian dari log instilasi.
Namun berhati-hatilah, ini tidak dijamin. (lihat jawaban / komentar lain untuk beberapa alasan itu mungkin tidak berfungsi.)
Pada distribusi berbasis Red Hat (mis. CentOS, Scientific, Oracle dll) Anda dapat menggunakan:
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.
atau
rpm -q basesystem --qf '%{installtime:date}\n'
Mon 02 May 2016 19:20:58 BST
rpm -qi
memberi saya Install Date: Mon 07 Jul 2014 03:20:44 PM UTC
, sementara tune2fs
kata Filesystem created: Sat Dec 20 23:41:41 2014
?
Solusi yang paling netral untuk sistem file dan distribusi (yang bisa saya buat) adalah dengan menggunakan file tertua yang diberikan oleh ls -lact /etc
, yang melihat metadata setiap file untuk waktu pembuatan. Meskipun ini dapat di-gamed, itu tidak terpengaruh oleh touch
atau file yang dibuat dengan mengekstraksi arsip (misalnya tar -p
untuk mempertahankan stempel waktu).
Saya pikir yang terbaik untuk melihat file daripada direktori sejak direktori yang mengubah mereka metadata waktu penciptaan ketika isinya berubah (mungkin seseorang dapat menjelaskan mengapa itu?)
ls -lact --full-time /etc |tail
Sistem yang tidak memiliki GNU Coreutils harus menghapus --full-time
opsi (urutan pengurutan akan tetap benar dan Anda akan tetap dapat hari itu). Anda bisa mendapatkan waktu pembuatan dari metadata file dengan stat FILE |grep Change
(jalankan pada file tertua yang didaftar oleh ls -lact
).
Pada sistem non-Linux lainnya, stat
kemungkinan memiliki informasi itu dalam pengaturan yang sedikit berbeda, mungkin memerlukan bendera yang berbeda. Perhatikan bahwa ini masih menggunakan metadata file dan akurasi tidak dijamin.
Juga perhatikan bahwa stat
dari GNU Coreutils memiliki waktu "Kelahiran" yang cenderung salah (Linux dengan hasil ext40
menunjukkan itu tidak diketahui, FreeBSD dengan UFS menunjukkan waktu "Kelahiran" yang lebih tua dari sistem yang saya tanyakan). Nilai yang benar terdaftar sebagai waktu "Ubah".
Jika Anda ingin mendapatkan mewah dan hanya waktu penciptaan file tertua di /etc
:
ls -lact --full-time /etc |awk 'END {print $6,$7,$8}'
Perintah ini bekerja untuk saya pada sistem FreeBSD lama (UFS, tidak ada utilitas GNU):
stat "/etc/$(ls -act /etc |tail -1)" |awk -F\" '{print $6}'
(Ya, ini mem ls
- parsing dan itu tabu, tetapi seharusnya tidak ada nama file yang nakal /etc
.)
Anda juga dapat menggunakan stat
untuk mendapatkan format waktu lainnya. Misalnya, untuk mendapatkan waktu pembuatan dalam Unix epoch : stat -c %Z FILE
(dengan GNU, perhatikan bahwa %Z
"waktu perubahan status terakhir" tetapi itu adalah tanda yang benar untuk sistem Linux dan BSD saya, seperti yang disebutkan di atas; %W
adalah "waktu kelahiran file" ) atau stat -f %c FILE
(dengan BSD).
Di Fedora, installer anaconda menyimpan detail konfigurasi instal Anda di folder home root, yang dapat memberi Anda beberapa ide.
Pada Debian (setidaknya yang lebih baru), beberapa log dari instalasi disimpan /var/log/installer/
. Versi lama menyimpannya /var/log/installer.*
. Setidaknya itu kembali ke tahun 2003.
Seperti yang diminta oleh OP.
Jika Anda mencari waktu, ketika sistem diatur, tidak ada cara untuk menentukan itu. Untuk satu, sistem mungkin telah dikloning (tidak diinstal) yang secara efektif akan memalsukan waktu pembuatan file.
Anda dapat memperkirakan usia dengan mencari file terlama.
Saya melihat file tertua di / boot (di atas "ls-ltr / boot". Seringkali ada sektor boot asli dari instalasi pertama di sana. Pada sistem tertua saya ini memberikan tanggal instalasi asli, meskipun telah mengganti semuanya dalam mesin dan menyalin isi sistem file sekitar beberapa kali :)
Saya telah mencari alat yang serupa, dan yang terbaik yang bisa saya lakukan adalah ls -lAhF /etc/hostname
, cukup umur file hostname. Saya pikir, secara umum, nama host suatu sistem diatur di awal, dan dibiarkan tidak berubah selama umur sistem. Tanggal pembuatan filesystem sangat membantu, tetapi bisa menyesatkan. Saya, misalnya, sering menggunakan gambar mesin virtual, yang telah saya instal beberapa waktu lalu, menyalinnya, mengubah nama host dan membuat server baru darinya. Oleh karena itu, dalam kasus saya /etc/hostname
indikasi lebih baik daripadatune2fs -l /dev/sda1
ls -alct /root
-> direktori home root dibuat saat instalasi
/
nyala sedikit kurang mungkin telah berubah jika kernel tidak disimpan /
, tetapi itu masih bukan indikator yang sangat baik. (Pengingat: -c
bukan waktu pembuatan, ini adalah waktu perubahan metadata. Sebagian besar sistem file unix tidak menyimpan waktu pembuatan file.)
/root
mungkin akan berubah secara alami (misalnya setiap kali seseorang membuat file di sana).
Sejak beberapa waktu yang lalu, saya biasanya menginstal pada waktu yang bersamaan bahwa distribusi linux paket yang disebut Tuptime , yang menyimpan statistik yang berguna tentang waktu berjalan, startup, shutdowns ...
Untuk pertanyaan Anda, baris "Kehidupan sistem" memiliki informasi itu. Sebagai contoh:
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
Info lebih lanjut: https://github.com/rfrail3/tuptime/
Ini cara lain
# rpm -q -last basesystem
basesystem-10.0-7.el7.noarch Tue 11 Jul 2017 03:57:52 PM UTC
Saya menemukan file sederhana. nama "1". Mungkin file pertama.
â–¶ ls -lact --full-time /1
-rw-r--r--. 1 root root 0 2017-03-23 12:02:46.880994133 +0800 /1