Làm cách nào để xác định tuổi tuổi của hệ thống linux kể từ khi cài đặt?


39

Tôi nghĩ rằng tôi có thể dễ dàng kiểm tra dấu thời gian của các tệp cụ thể. Sau đó, tôi nhận ra rằng nó sẽ không dễ dàng như vậy khi tôi thấy dấu thời gian như thế nào 1991.


Tôi yêu tất cả những câu trả lời này, và đã nâng cao một số, và học hỏi từ chúng. Nhưng điều đó xảy ra với tôi rằng câu hỏi không được xác định rõ: ví dụ, hộp colo của tôi đã trải qua hai lần thay đổi bo mạch chủ và bốn thay đổi hoàn toàn của ổ cứng trong mười năm hoạt động, với việc FS bị đổ | khôi phục mỗi lần. Tất cả các khóa công khai ssh của tôi là ngày 19 tháng 2 năm 2001; nhưng FS gốc đã được tạo vào ngày 11 tháng 6 năm 2010, 20:59:01, khi mobo được nâng cấp lần cuối (cùng với các đĩa); Tuy nhiên, các thử nghiệm khác cho kết quả khác nhau và nó xảy ra với tôi: làm thế nào để bạn xác định (không khám phá) tuổi của hệ thống linux?
MadHatter hỗ trợ Monica

4
Rõ ràng đây còn được gọi là vấn đề Ship of Theseus; xem en.wikipedia.org/wiki/Ship_of_Theseus .
MadHatter hỗ trợ Monica

Tôi luôn có một hdd với một phân vùng tồn tại kể từ khi tôi mua máy ... Tôi đặt tất cả những thứ tôi cần sao lưu vào đó khi tôi mua một ổ đĩa mới hoặc tạo một phân vùng gốc mới với kernel mới ... Nhưng nó đã không xảy ra với tôi :-)
lisak

Câu trả lời:


47

Cách đơn giản nhất có lẽ sẽ là (giả sử sda1 là / root /):

chỉnh2fs -l / dev / sda1 | grep đã tạo

Điều này sẽ cho bạn thấy ngày mà hệ thống tập tin được tạo ra. Xác nhận hoạt động trên ext2 đến ext4, không chắc chắn về các hệ thống tệp khác!


1
Khi tôi nhận được một ổ đĩa mới cho PC, tôi thường tạo các phân vùng trên đó và sau đó cp -adữ liệu. Vì vậy, trong ngắn hạn: không thể xác định tuổi của hệ thống trong mọi trường hợp.
Hubert Kario

Có lẽ sử dụng /dev/rootlà một chút tổng quát hơn.
camh

Tôi đã cài đặt một hệ thống mới so với hệ thống trước đó, giữ sda1 FS và do đó, giải pháp MihaiM bên dưới (phím ssh) chính xác hơn.
Đổ chuông

14

Một cơ chế tôi thường sử dụng là kiểm tra thời gian thay đổi (ctime) trên các tệp trong thư mục gốc. Vì /rootthư mục chính được tạo khi cài đặt và thường hiếm khi được sử dụng, điều này có thể cung cấp một xấp xỉ tương đối tốt. Như được làm rõ bởi Kyle trong các bình luận, vì ctime đề cập đến inode chứ không phải dữ liệu, việc sửa đổi nội dung tệp sẽ không thay đổi thời gian.

Theo mặc định, lslệnh in thời gian sửa đổi (mtime) của tệp. Vì vậy, nếu thay thế trong tùy chọn ctime như vậy,

ls -alct /root

Điều này sẽ in tất cả các tệp, hiển thị thời gian tạo và sắp xếp theo thời gian.

Ví dụ, đây là một mẫu gồm 3 tệp cũ nhất trong /rootthư mục từ một trong các hệ thống của tôi.

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

Và sau đó bằng cách kiểm tra thời gian thay đổi

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

Ngày 18 tháng 2 năm 2010 chắc chắn theo dõi thời gian gần đúng tôi sẽ cài đặt hệ thống đó lần đầu tiên.


4
ctime thực sự không phải là thời gian tạo tập tin, mà là thời gian thay đổi. Đây là lần cuối cùng tôi thay đổi được thực hiện cho inode. Nếu bạn thay đổi quyền hoặc chủ sở hữu của tệp, điều này sẽ thay đổi. Có thể chủ sở hữu hoặc quyền của thư mục / root đã không thay đổi, đó là lý do tại sao điều này được xếp hàng. (Tôi không biết chữ c thực sự đại diện cho cái gì - Đặc tả unix duy nhất chỉ có "time_t st_ctime Thời gian thay đổi trạng thái cuối cùng".
Kyle Brandt

Thật vậy, ngày / giờ của nhật ký cài đặt. Mà có thể có hoặc không có tùy thuộc vào phân phối / os của bạn.
Koos van den Hout

6

thử

ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6

các khóa được tạo khi bạn cài đặt hệ điều hành.


3
Đây là một ý tưởng hay tuy nhiên một số điểm yếu đã được tìm thấy trong các khóa SSH và nếu bạn đã thực hiện cập nhật hệ thống (và bạn nên thực hiện cập nhật hệ thống!) Thì các khóa sẽ được tạo lại.
Josh

Ý tưởng tuyệt vời Tuy nhiên, nếu khóa đủ mới, hãy lshiển thị ngày khác (ít nhất là trên máy của tôi) để cutlệnh không hoạt động đúng. Bây giờ tôi sẽ sử dụng stat -c %y /etc/ssh/ssh_host*pub. Ngoài ra, tôi tự hỏi tại sao thời gian tạo tệp lại không nhận được nhiều tình yêu hơn trên Linux ...
Rennex

3

Kiểm tra phần cứng sẽ là một lựa chọn tốt, nếu bạn có quyền truy cập vào nó. Bạn có thể kiểm tra hệ thống và / hoặc các thành phần phần cứng để biết được khi nào nó được lắp ráp.

Cách khác, nếu bạn có thể truy cập vào màn hình BIOS, thông tin ngày thường có thể được sử dụng để xác định tuổi của máy.

Nếu bạn có thể truy cập vào thông tin SMART trên ổ cứng ( smartctl -a /dev/sda), có thể có một cái gì đó ở đó để tiếp tục. Tôi không thấy dấu thời gian cụ thể trong SMART nhưng có ít nhất một giờ truy cập sử dụng. Điều đó sẽ cung cấp giới hạn thấp hơn về tuổi của máy (vì nếu ổ cứng đã chạy được 100 giờ, hệ thống không thể trẻ hơn 100 giờ).

Đối với kiểm tra hệ thống tập tin, bạn có thể xem thông tin ngày cho /lost+found- thư mục đó đã được tạo khi hệ thống tập tin được tạo. Ngày trên đó phải đồng ý với thông tin tunefs từ câu trả lời trước.


+1 cho /lost+foundgợi ý, vì thông tin này có sẵn cho người dùng không có đặc quyền. Chạy một hoạt động hàng loạt như Tune2fs trên các hệ thống tập tin gốc như siêu người dùng là một chút đáng lo ngại. Ngoài ra, giải pháp này hoạt động trên các hệ thống tập tin FreeBSD và non-ext2 / 3/4.
Stefan Lasiewski

3

Với RedHat và các dẫn xuất, thật dễ dàng để có được ý tưởng chung về phiên bản HĐH / cổ điển thông qua sự kết hợp giữa tuổi tập tin và các tệp hệ thống khác. Tôi sẽ thường kiểm tra /root/anaconda-ks.cfgtệp, vì nó chứa các tham số gói và cài đặt máy chủ ban đầu. Đôi khi uname -asẽ có thông tin tốt về ngày xây dựng kernel. Cũng sẽ có một cụm các tệp có cùng ngày /etc; điển hình là các liên kết RCx.d, tập lệnh RC, inittab, v.v.


3

Điều này cũng hoạt động cho các hệ thống Red Hat:

rpm -qi basesystem | grep "Install Date"

Lưu ý rằng điều này (và thủ thuật Tune2fs) hoạt động kém hơn với các máy ảo, nếu chúng được tạo ra từ một hình ảnh phổ biến. Tuy nhiên, việc kiểm tra các khóa máy chủ ssh là chính xác trên Linode của tôi.
cjc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.