什么是与发行版无关的方法来确定操作系统的安装日期?


10

我在CrunchBang机器上,尝试编写一个需要以操作系统安装日期为参考的脚本。

我搜索并找到以下命令:

ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'

它打印

Mar 31 21:24

我不理解该tail -1部分,但是能够弄清楚$ 6 $ 7 $ 8是命令所引用的最后一行的第6 7 7 8个出现。

但是,我意识到不能包含年份,因为该年份未在ls -ltc命令中显示。

有人建议找到/etc创建日期,然后再检查/var/log/syslog等等。我认为这些可能与发行版有关。

您对真正不知道操作系统安装日期的方式有何建议?


1
您为什么认为检查/etc的创建日期是发行版特定的?
凯文(Kevin)

我最近读到一些发行版具有不同的文件系统层次结构,例如gobolinux,并且给人的印象是可能有更多发行版类似于gobolinux。
Animesh 2012年

1
我认为检查/ etc比假设使用ext文件系统更具移植性。或仅检查中最旧的目录/
凯文(Kevin)

1
为了完整起见,我将注意到ls的输出显示小于六个月的时间以及大于六个月的年份。
Random832

@Kevin如果在保留权限的情况下解压缩归档文件,则最早的目录/文件可能比系统安装日期还早。
scai 2012年

Answers:


8

如果假设您有一个ext {2,3,4}文件系统,并且在安装操作系统时格式化了根文件系统(并且在没有擦除的情况下没有从另一个操作系统进行升级),则可以使用dumpe2fs:

% dumpe2fs -h /dev/mapper/vg_desktop-lv_root 2>&1 |grep 'Filesystem created'
Filesystem created:       Sat Jul 23 04:28:07 2011

是将输出重定向到某个位置还是文件,因为在运行命令时什么也没发生。
Animesh 2012年

您必须为根文件系统提供设备,而不是/ dev / mapper / vg_desktop-lv_root。检查输出df /以获取它。我确定您可以将其自动化。
jsbillings 2012年

我意识到我在键入命令时有一个_代替-。我现在知道日期。谢谢。
Animesh 2012年

或者您没有备份,重新格式化和还原。
psusi'4

3
我的文件系统是reiserfs。恕我直言,寻找/ etc是更好的方法。
用户未知

0

我不知道有什么正式的方法。

我一直做的是:

touch /install-`date +"%F"` && chattr +i /install-20*

这将创建一个名为“ install-”的文件,后跟当前日期(如果今天运行,它将是install-2012-04-03),并将其设置为不可变,因此不会被意外删除。

然后,只需查看该文件即可查看操作系统的安装时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.