有时了解操作系统将要使用的特定文件很有用启动时创建。
例如,您可以在脚本需要知道启动时间。
是否有任何像这样的“高度标准”文件适合所有人,或者至少适合许多人类Unix操作系统,包括嵌入式设备(路由器、AP、网络摄像头)或变体(BSD、CentOS、iOS)?
答案1
简短的回答是:不,没有这样的文件。
更长的答案是:
不,不存在这样的文件,如果有该文件的时间戳将是它的创建时间,与机器启动的时间不同。根据它在启动过程中的具体创建位置,可能是在系统实际启动后几秒、几分钟甚至更长的时间。
一些替代方案:
$ uptime
10:06:50 up 31 days, 18:52, 21 users, load average: 0.50, 0.54, 0.49
$ who -b
system boot 2019-08-13 15:14
$ last reboot | head -n 1
reboot system boot 5.2.0-2-amd64 Tue Aug 13 15:14 still running
这些都不能保证在不同操作系统上具有完全相同的输出。例如,上述命令在 Debian GNU/Linux (sid) 上运行。在我的 FreeBSD 12 VM 上,它们看起来像这样:
$ uptime
10:14AM up 8 days, 23:12, 1 user, load averages: 0.25, 0.28, 0.26
$ who -b
system boot Sep 5 11:02
$ last reboot | head -n 1
boot time Thu Sep 5 11:02
在 Linux 上,您可以运行一个名为 的程序uptimed
来记录启动和关闭时间。您可以使用 来查询uprecords
。例如:
$ uprecords -B
# Uptime | System Boot up
----------------------------+---------------------------------------------------
-> 1 31 days, 18:52:24 | Linux 5.2.0-2-amd64 Tue Aug 13 15:14:29 2019
2 52 days, 20:45:19 | Linux 4.19.0-5-amd64 Fri Jun 21 18:21:54 2019
3 51 days, 01:01:16 | Linux 4.19.0-4-amd64 Wed May 1 16:40:47 2019
4 1 day , 01:13:47 | Linux 4.19.0-4-amd64 Tue Apr 30 14:54:34 2019
5 21 days, 10:56:49 | Linux 4.19.0-4-amd64 Tue Apr 9 03:29:37 2019
6 0 days, 01:20:59 | Linux 4.19.0-3-amd64 Tue Apr 9 02:01:15 2019
7 41 days, 03:01:09 | Linux 4.19.0-3-amd64 Tue Feb 26 23:13:23 2019
8 0 days, 01:40:57 | Linux 4.18.0-3-amd64 Tue Feb 26 21:29:41 2019
9 20 days, 00:59:13 | Linux 4.18.0-3-amd64 Wed Feb 6 20:07:11 2019
10 66 days, 00:02:21 | Linux 4.18.0-3-amd64 Sun Dec 2 19:05:03 2018