![如何确定Linux系统自安装以来的“年龄”?](https://linux22.com/image/535326/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9ALinux%E7%B3%BB%E7%BB%9F%E8%87%AA%E5%AE%89%E8%A3%85%E4%BB%A5%E6%9D%A5%E7%9A%84%E2%80%9C%E5%B9%B4%E9%BE%84%E2%80%9D%EF%BC%9F.png)
我以为我可以轻松检查特定文件的时间戳。然后我意识到当我看到这样的时间戳时,事情就没那么容易了1991
。
答案1
最简单的方法可能是(假设 sda1 是您的 /root/):
tune2fs -l /dev/sda1 | grep 创建
这应该会显示文件系统的创建日期。确认可以在 ext2 到 ext4 上运行,不确定是否适用于其他文件系统!
答案2
我经常使用的一种机制是检查根主目录中文件的更改时间 (ctime)。由于/root
主目录是在安装时创建的,并且通常很少使用,因此这可以提供相对较好的近似值。正如 Kyle 在评论中澄清的那样,由于 ctime 指的是 inode,而不是数据,因此修改文件内容不会改变 ctime。
默认情况下,该ls
命令会打印文件的修改时间 (mtime)。因此,如果像这样替换 ctime 选项,
ls -alct /root
这将打印所有文件,显示创建时间,并按时间排序。
/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 日这个日期肯定与我第一次安装该系统的大致时间相符。
答案3
尝试
ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6
密钥是在您安装操作系统时生成的。
答案4
对于 RedHat 及其衍生产品,通过结合文件年龄和其他系统文件,很容易大致了解操作系统版本/年份。我通常会检查文件/root/anaconda-ks.cfg
,因为它包含初始服务器设置和软件包参数。有时uname -a
会包含有关内核构建日期的有用信息。还会有一组具有相同日期的文件/etc
;通常是 rcx.d 链接、rc 脚本、inittab 等。