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 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
.
Câu trả lời:
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!
cp -a
dữ 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.
/dev/root
là một chút tổng quát hơn.
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ì /root
thư 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, ls
lệ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 /root
thư 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.
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.
ls
hiển thị ngày khác (ít nhất là trên máy của tôi) để cut
lệ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 ...
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.
/lost+found
gợ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.
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.cfg
tệp, vì nó chứa các tham số gói và cài đặt máy chủ ban đầu. Đôi khi uname -a
sẽ 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.
Điều này cũng hoạt động cho các hệ thống Red Hat:
rpm -qi basesystem | grep "Install Date"