如何查看 Linux 系统的安装时间?

如何查看 Linux 系统的安装时间?

如果没有人试图隐藏 Linux 系统,如何找到自首次安装以来的时间?

答案1

sudo tune2fs -l /dev/sda1 **OR** /dev/sdb1*  | grep 'Filesystem created:'

这将告诉您文件系统的创建时间。

* = 在第一列中,df /您可以找到要使用的确切分区。

答案2

使用 dumpe2fs 检查根文件系统的日期。我真的想不出除了你要找的日期之外还有什么其他的:

dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') | grep 'Filesystem created:'

答案3

周围有一些日期。

  • 所有文件都有日期。
  • 日志文件中包含日期。

在 Debian 或 Ubuntu 及其衍生产品上,请查看/var/log/installer/syslog明确的答案(如果存在),它是灌输日志的一部分。

但请注意,这并不能得到保证。 (有关它可能不起作用的一些原因,请参阅其他答案/评论。)

答案4

对文件系统和分发最中立的解决方案(我能想到的)是使用 给出的最旧的文件ls -lact /etc,它查看每个文件的创建时间的元数据。虽然这可以被玩弄,但它不受提取touch档案或通过提取档案创建的文件的影响(例如,tar -p为了保留时间戳)。

我认为最好查看文件而不是目录,因为目录当内容更改时更改其创建时间元数据(也许有人可以解释为什么会这样?)

ls -lact --full-time /etc |tail

缺乏的系统GNU Coreutils应该删除该--full-time选项(排序顺序仍然正确,您仍然会得到这一天)。您可以使用stat FILE |grep Change(在列出的最旧文件上运行)从文件的元数据中获取创建时间ls -lact

在其他非 Linux 系统上,stat该信息的排列方式可能略有不同,可能需要不同的标志。请注意,这仍然使用文件的元数据,并且不保证准确性。

另请注意,statGNU Coreutils 有一个“出生”时间,这往往是错误的(Linux 与外部4yield0表明它是未知的,FreeBSD 具有超高速文件系统显示的“出生”时间早于我查询的系统)。正确的值被列为其“更改”时间。

如果你想变得花哨并获得只是最旧文件的创建时间/etc

ls -lact --full-time /etc |awk 'END {print $6,$7,$8}'

这个命令在旧的 FreeBSD 系统(UFS,没有 GNU utils)上对我有用:

stat "/etc/$(ls -act /etc |tail -1)" |awk -F\" '{print $6}'

(是的,这会解析,ls这是禁忌,但 . 中不应该有恶作剧命名的文件/etc。)

您还可以用来stat获取其他时间格式。例如,要获取创建时间Unix时代:(stat -c %Z FILE对于 GNU,请注意,这%Z是“上次状态更改的时间”,但对于我的 Linux 和 BSD 系统来说,这是正确的标志,如上所述;%W是“文件生成的时间”)或stat -f %c FILE(对于 BSD)。

相关内容