如果没有人试图隐藏 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
该信息的排列方式可能略有不同,可能需要不同的标志。请注意,这仍然使用文件的元数据,并且不保证准确性。
另请注意,stat
GNU 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)。