Все, кроме корневой шины (которая обычно является шиной платформы, например, ACPI на ПК), соединены с корневой шиной, и их порядок зависит от перечисления.
Обычно перечисление шины в основном детерминировано, поскольку порядок, в котором обнаруживаются устройства на шине, обычно статичен, но для этого нет никакой гарантии, и когда два моста шины соединены в цепочку, перечисление выполняется параллельно:
Между двумя потоками перечисления отсутствует порядок, поэтому мост PCI может получить идентификатор 1, 2 или 3.
Вы можете получить его бесплатно на выходеlast reboot
:
$ last reboot
reboot system boot 4.14.81-i7 Sat Nov 17 23:25 still running
reboot system boot 4.14.80-i7 Fri Nov 16 09:16 - 15:49 (06:33)
$ printf "On since: "; last reboot | grep "still running" | cut -c 40-56
On since: Sat Nov 17 23:25
$ printf "On since: " ; last reboot --time-format iso | grep "still running" | cut -c 40-49
On since: 2018-11-17
Ваша команда uptime
также может иметь параметр -s
:
$ uptime -s
2018-11-17 23:25:23
Поскольку этот формат приемлем для date -d
, вы можете переформатировать время по своему усмотрению::
$ date -d "$(uptime -s)" "+On since: %d:%m:%y"
On since: 17:11:18
Одиночная команда.
$ date -r /proc/1 '+The computer is on since %d-%b-%y'
The computer is on since 09-Oct-18
$
Использование последней модификации данных каталога /proc
, заданногоstat
:
date -d "@$(stat -c '%Y' "/proc")" +'%F %T %z'
Пример:
$ stat /proc
File: `/proc'
Size: 0 Blocks: 0 IO Block: 1024 directory
Device: 3h/3d Inode: 1 Links: 188
Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-09-04 16:36:02.016000956 +0200
Modify: 2020-09-04 16:36:02.016000956 +0200
Change: 2020-09-04 16:36:02.016000956 +0200
Birth: -
$ date -d "@$(stat -c '%Y' "/proc")" +'%F %T %z'
2020-09-04 16:36:02 +0200