小智 115
sudo tune2fs -l /dev/sda1 **OR** /dev/sdb1* | grep 'Filesystem created:'
Run Code Online (Sandbox Code Playgroud)
这将告诉您文件系统的创建时间。
* = 在第一列中,df /您可以找到要使用的确切分区。
pbo*_*oin 24
使用 dumpe2fs 检查根文件系统的日期。我真的想不出除了你要找的日期之外还有什么:
dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') | grep 'Filesystem created:'
Run Code Online (Sandbox Code Playgroud)
ctr*_*lor 19
周围有几个日期。
在 Debian 或 Ubuntu 及其衍生产品上,/var/log/installer/syslog如果存在,请参阅确定的答案,它是灌输日志的一部分。
但请注意,这并不能保证。(由于某些原因它可能不起作用,请参阅其他答案/评论。)
小智 17
在基于 Red Hat 的发行版(例如 CentOS、Scientific、Oracle 等)上,您可以使用:
rpm -qi basesystem
Name : basesystem
Version : 10.0
Release : 7.el7
Architecture: noarch
Install Date: Mon 02 May 2016 19:20:58 BST
Group : System Environment/Base
Size : 0
License : Public Domain
Signature : RSA/SHA256, Tue 01 Apr 2014 14:23:16 BST, Key ID 199e2f91fd431d51
Source RPM : basesystem-10.0-7.el7.src.rpm
Build Date : Fri 27 Dec 2013 17:22:15 GMT
Build Host : ppc-015.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor : Red Hat, Inc.
Summary : The skeleton package which defines a simple Red Hat Enterprise Linux system
Description :
Basesystem defines the components of a basic Red Hat Enterprise Linux
system (for example, the package installation order to use during
bootstrapping). Basesystem should be in every installation of a system,
and it should never be removed.
Run Code Online (Sandbox Code Playgroud)
或者
rpm -q basesystem --qf '%{installtime:date}\n'
Mon 02 May 2016 19:20:58 BST
Run Code Online (Sandbox Code Playgroud)
Ada*_*atz 12
对文件系统和分发(我能想出的)最中立的解决方案是使用由 给出的最旧的文件ls -lact /etc,它查看每个文件的元数据以获取创建时间。虽然这可以玩游戏,但它不受touch提取档案或通过提取档案创建的文件的影响(例如tar -p保留时间戳)。
我认为最好查看文件而不是目录,因为目录会在内容更改时更改其创建时间元数据(也许有人可以解释为什么会这样?)
ls -lact --full-time /etc |tail
Run Code Online (Sandbox Code Playgroud)
缺少GNU Coreutils 的系统应该删除该--full-time选项(排序顺序仍然是正确的,你仍然会得到这一天)。您可以使用stat FILE |grep Change(在 列出的最旧文件上运行)从文件的元数据中获取创建时间ls -lact。
在其他非 Linux 系统上,stat该信息的排列可能略有不同,可能需要不同的标志。请注意,这仍然使用文件的元数据,并且不保证准确性。
还要注意的是stat从GNU Coreutils的具有“诞生”时间,这往往是错误的(Linux下ext4的收益率0,以表明它的未知,与FreeBSD UFS呈“诞生”的时间比我查询系统以上)。正确的值被列为其“更改”时间。
如果您想获得幻想并仅获取中最旧文件的创建时间/etc:
ls -lact --full-time /etc |awk 'END {print $6,$7,$8}'
Run Code Online (Sandbox Code Playgroud)
这个命令在旧的 FreeBSD 系统(UFS,没有 GNU utils)上对我有用:
stat "/etc/$(ls -act /etc |tail -1)" |awk -F\" '{print $6}'
Run Code Online (Sandbox Code Playgroud)
(是的,这会解析ls,这是禁忌,但 . 中不应该有恶作剧命名的文件/etc。)
您还可以使用stat获取其他时间格式。例如,要获得Unix 纪元中的创建时间:(stat -c %Z FILE对于 GNU,请注意这%Z是“上次状态更改的时间”,但这是我的 Linux 和 BSD 系统的正确标志,如上所述;%W是“文件出生时间” ) 或stat -f %c FILE(使用 BSD)。
在 Fedora 中,anaconda 安装程序将安装的配置详细信息存储在 root 的主文件夹中,这可以让您有所了解。
在 Debian(至少是最近的)上,来自安装的几个日志存储在/var/log/installer/. 旧版本将它们存储在/var/log/installer.*. 这至少可以追溯到 2003 年。
我一直在寻找类似的工具,我能想到的最好的就是ls -lAhF /etc/hostname,只是主机名文件的年龄。我认为,一般来说,系统的主机名是在开始时设置的,并且在系统的生命周期中保持不变。文件系统的创建日期肯定有帮助,但可能会产生误导。例如,我经常使用我前段时间安装的虚拟机映像,复制它,更改主机名并从中创建一个新服务器。因此,在我的情况下/etc/hostname比tune2fs -l /dev/sda1