我以为我可以轻松检查特定文件的时间戳。然后我意识到当我看到像这样的时间戳时并不是那么容易1991
。
我以为我可以轻松检查特定文件的时间戳。然后我意识到当我看到像这样的时间戳时并不是那么容易1991
。
Answers:
最简单的方法可能是(假设sda1是您的/ root /):
tune2fs -l / dev / sda1 | grep已创建
这应该显示您创建文件系统的日期。确认可以在ext2到ext4上使用,不确定其他文件系统!
cp -a
数据覆盖。简而言之:不可能在所有情况下都确定系统的寿命。
/dev/root
会更普遍。
我经常使用的一种机制是检查根主目录中文件的更改时间(ctime)。由于/root
主目录是在安装时创建的,并且通常很少使用,因此可以提供一个相对较好的近似值。正如Kyle在评论中所阐明的那样,由于ctime是指索引节点而不是数据,因此修改文件内容不会更改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日这一日期与我第一次安装该系统的大概时间一致。
尝试
ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6
安装操作系统时会生成密钥。
ls
则以不同的方式显示日期(至少在我的机器上),因此该cut
命令无法正常运行。我现在使用stat -c %y /etc/ssh/ssh_host*pub
。另外,我想知道为什么文件创建时间在Linux上没有得到更多的关注……
如果可以访问,检查硬件是一个不错的选择。您可以检查系统和/或硬件组件,以了解何时组装。
或者,如果您可以访问BIOS屏幕,则通常会有日期信息可用于确定计算机的年龄。
如果您可以访问硬盘驱动器(smartctl -a /dev/sda
)上的SMART信息,则可能有其他情况。我在SMART中没有看到特定的时间戳,但是至少有一个小时的使用情况计数器。这将为机器的使用期限提供一个下限(由于硬盘驱动器已经运行了100个小时,因此系统不能少于100个小时)。
至于文件系统检查,您可以查看日期信息/lost+found
-创建文件系统时已创建该目录。日期应与上一个答案中的tunefs信息一致。
/lost+found
,因为非特权用户可以使用此信息。以超级用户身份在根文件系统上运行类似tune2fs的批处理操作有些令人担忧。另外,该解决方案适用于FreeBSD和非ext2 / 3/4文件系统。