ฉันจะหาเวลาได้อย่างไรตั้งแต่ติดตั้งระบบลีนุกซ์ครั้งแรกโดยที่ไม่มีใครพยายามซ่อนมันไว้?
ฉันจะหาเวลาได้อย่างไรตั้งแต่ติดตั้งระบบลีนุกซ์ครั้งแรกโดยที่ไม่มีใครพยายามซ่อนมันไว้?
คำตอบ:
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 based distributions (เช่น 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
ซึ่งจะดูที่ข้อมูลเมตาของแต่ละไฟล์สำหรับเวลาการสร้าง ขณะนี้สามารถ gamed มันจะไม่ได้รับผลกระทบจากtouch
หรือไฟล์ที่สร้างขึ้นโดยการแยกเก็บถาวร (เช่นtar -p
เพื่อรักษา timestamps)
ฉันคิดว่าเป็นการดีที่สุดที่จะดูไฟล์มากกว่าไดเรกทอรีเนื่องจากไดเรกทอรีจะเปลี่ยนเมทาดาทาเวลาการสร้างเมื่อเนื้อหาของพวกเขาเปลี่ยนไป (บางทีบางคนสามารถทำให้เข้าใจได้ว่าทำไมถึงเป็นเช่นนั้น)
ls -lact --full-time /etc |tail
ระบบที่ขาดGNU Coreutilsควรลบ--full-time
ตัวเลือก (ลำดับการเรียงจะยังคงถูกต้องและคุณจะยังคงได้รับวัน) คุณสามารถรับเวลาการสร้างจากข้อมูลเมตาของไฟล์ด้วยstat FILE |grep Change
(เรียกใช้ในไฟล์ที่เก่าที่สุดที่ระบุโดยls -lact
)
บนระบบอื่นที่ไม่ใช่ลีนุกซ์stat
อาจมีข้อมูลนั้นในการจัดเรียงที่แตกต่างกันเล็กน้อยอาจต้องการแฟล็กที่แตกต่างกัน โปรดทราบว่านี่ยังคงใช้ข้อมูลเมตาของไฟล์และไม่รับประกันความถูกต้อง
โปรดทราบว่าstat
จาก GNU Coreutils มีเวลา "วันเกิด" ซึ่งมีแนวโน้มที่จะผิด (Linux ที่มีอัตราผลตอบแทนext40
เพื่อระบุว่าไม่ทราบ 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
"เวลาของการเปลี่ยนสถานะครั้งสุดท้าย" แต่นั่นเป็นสถานะที่ถูกต้องสำหรับระบบ Linux และ BSD ของฉันตามที่ระบุไว้ข้างต้น%W
คือ "เวลาของการเกิดไฟล์" ) หรือstat -f %c FILE
(พร้อม BSD)
ใน Fedora ผู้ติดตั้งแอนาคอนดาจะจัดเก็บรายละเอียดการกำหนดค่าการติดตั้งของคุณไว้ในโฟลเดอร์โฮมของรูท
บน Debian (อย่างน้อยที่สุดเมื่อเร็ว ๆ นี้) จะมีการจัดเก็บบันทึกจากการติดตั้งหลาย/var/log/installer/
รายการ /var/log/installer.*
รุ่นเก่าเก็บไว้ใน อย่างน้อยก็ย้อนกลับไปปี 2003
ตามที่ร้องขอโดย OP
หากคุณกำลังมองหาเวลาเมื่อระบบถูกตั้งค่าไม่มีวิธีการตรวจสอบว่า สำหรับหนึ่งระบบอาจถูกโคลน (ไม่ได้ติดตั้ง) ซึ่งจะปลอมเวลาในการสร้างไฟล์ได้อย่างมีประสิทธิภาพ
คุณสามารถประมาณอายุด้วยการค้นหาไฟล์ที่เก่าที่สุด
ls -alct /|tail -1|awk '{print $6, $7, $8}'
ฉันดูไฟล์ที่เก่าแก่ที่สุดใน / boot (ด้านบนของ "ls -ltr / boot" มักจะมีบูตเซกเตอร์ดั้งเดิมจากการติดตั้งครั้งแรกที่นั่นระบบเก่าแก่ที่สุดของฉันนี้ให้วันที่ติดตั้งดั้งเดิม เครื่องและคัดลอกเนื้อหาของระบบไฟล์ประมาณสองสามครั้ง :)
ฉันกำลังมองหาเครื่องมือที่คล้ายกันและสิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือls -lAhF /etc/hostname
อายุของไฟล์ชื่อโฮสต์ ฉันคิดว่าโดยทั่วไปชื่อโฮสต์ของระบบจะถูกตั้งค่าไว้ที่จุดเริ่มต้นและจะไม่มีการเปลี่ยนแปลงในช่วงชีวิตของระบบ วันที่สร้างระบบไฟล์นั้นมีประโยชน์มาก แต่อาจทำให้เข้าใจผิดได้ ตัวอย่างเช่นฉันมักจะใช้อิมเมจเครื่องเสมือนซึ่งฉันได้ติดตั้งไว้ก่อนหน้านี้คัดลอกเปลี่ยนชื่อโฮสต์และสร้างเซิร์ฟเวอร์ใหม่จากมัน ดังนั้นในกรณีของฉัน/etc/hostname
บ่งชี้ที่ดีกว่าtune2fs -l /dev/sda1
หากคุณใช้ LVM ระหว่างการติดตั้งคุณสามารถตรวจสอบวันที่สร้าง Logical Volume ที่ทำในวันที่ติดตั้งตัวอย่าง:
$ sudo lvdisplay /dev/mapper/KUbuntu_VG-rootFS | grep Creation
LV Creation host, time kubuntu, 2014-12-28 20:52:15 +0100
ls -alct /root
-> ไดเรกทอรีบ้านรูทถูกสร้างขึ้นในเวลาติดตั้ง
/
การเปลี่ยนมีแนวโน้มน้อยกว่าเล็กน้อยหากเคอร์เนลไม่ได้ถูกเก็บไว้/
แต่ก็ยังไม่ใช่ตัวบ่งชี้ที่ดีมาก (คำเตือน: -c
ไม่ใช่เวลาสร้างมันเป็นเวลาเปลี่ยนเมตาดาต้าระบบไฟล์ยูนิกซ์ส่วนใหญ่ไม่ได้จัดเก็บเวลาสร้างไฟล์)
/root
การเปลี่ยนแปลงมีแนวโน้มที่จะเปลี่ยนแปลงตามธรรมชาติ (เช่นทุกครั้งที่มีคนสร้างไฟล์ที่นั่น)
ตั้งแต่เวลาที่ผ่านมาฉันมักจะติดตั้งในช่วงเวลาที่ linux แจกจ่ายแพ็คเกจที่เรียกว่าTuptimeซึ่งเก็บสถิติที่เป็นประโยชน์เกี่ยวกับเวลาทำงาน startups, shutdowns ...
สำหรับคำถามของคุณบรรทัด "อายุการใช้งาน" มีข้อมูลนั้น ตัวอย่าง:
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
ข้อมูลเพิ่มเติม: https://github.com/rfrail3/tuptime/
นี่เป็นอีกวิธีหนึ่ง
# 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