如何确定安装后Linux系统的“年龄”?

我以为我可以很容易地检查特定文件的时间戳。 然后我意识到,当我看到像1991那样的时间戳时,并不那么容易。

最简单的方法可能是(假定sda1是你的/ root /):

tune2fs -l / dev / sda1 | grep创build

这应该显示文件系统的创builddate。 确认工作在ext2到ext4,不知道其他文件系统!

我经常使用的一种机制是检查根主目录中文件的更改时间(ctime)。 由于/root主目录是在安装时创build的,并且通常很less使用,所以这可以提供相对较好的近似。 正如Kyle在注释中所阐明的那样,由于ctime指的是inode,而不是数据,所以修改文件内容不会改变ct​​ime。

默认情况下, 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"