我以为我可以很容易地检查特定文件的时间戳。 然后我意识到,当我看到像1991
那样的时间戳时,并不那么容易。
最简单的方法可能是(假定sda1是你的/ root /):
tune2fs -l / dev / sda1 | grep创build
这应该显示文件系统的创builddate。 确认工作在ext2到ext4,不知道其他文件系统!
我经常使用的一种机制是检查根主目录中文件的更改时间(ctime)。 由于/root
主目录是在安装时创build的,并且通常很less使用,所以这可以提供相对较好的近似。 正如Kyle在注释中所阐明的那样,由于ctime指的是inode,而不是数据,所以修改文件内容不会改变ctime。
默认情况下, ls
命令打印文件的修改时间(mtime)。 所以,如果像这样在ctime选项中replace,
ls -alct /root
这将打印所有文件,显示创build时间,并按时间sorting。
举个例子,下面是我的一个系统中/root
目录中3个最旧文件的示例。
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
然后通过检查更改时间
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
2010年2月18日的date肯定跟踪我将首先安装该系统的大致时间。
尝试
ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6
这些密钥是在安装操作系统时生成的。
检查硬件是一个很好的select,如果你有权访问它。 您可以检查系统和/或硬件组件,以便了解何时assembly。
或者,如果您可以访问BIOS屏幕,那么通常可以使用date信息来确定机器的年龄。
如果您可以访问硬盘上的SMART信息( smartctl -a /dev/sda
),则可能需要继续。 我在SMART中看不到具体的时间戳,但至less有一个小时的使用计数器。 这将提供机器的年龄下限(因为如果硬盘已经运行100小时,系统不能小于100小时)。
至于文件系统检查,您可以查看/lost+found
的date信息 – 该目录是在创build文件系统时创build的。 它的date应该与前一个答案中的tunefs信息一致。
使用RedHat和衍生产品,通过文件时间和其他系统文件的组合,可以很容易地获得操作系统版本/年份的一般概念。 我通常会检查/root/anaconda-ks.cfg
文件,因为它包含了最初的服务器设置和软件包参数。 有时uname -a
会有关于内核生成date的很好的信息。 在/etc
也会有一组相同date的文件。 通常是rcx.d链接,rc脚本,inittab等
这也适用于红帽系统:
rpm -qi basesystem | grep "Install Date"