Câu trả lời:
Có vẻ như nó đã được triển khai gần đây cho Quantal (12.10): xem http://brainstorm.ubfox.com/idea/17829/ .
Về cơ bản, dmesg
được báo cáo là có một chuyển đổi mới -T, --ctime
.
Biên tập. Là một phần mở rộng khác về câu trả lời của Ignacio, đây là một số tập lệnh để tăng cường đầu ra dmesg trên các hệ thống cũ.
(Lưu ý: đối với phiên bản python của mã được hiển thị ở đó, người ta sẽ muốn thay thế <
và >
quay lại <>
để làm cho nó có thể sử dụng lại được.)
Cuối cùng, đối với một giá trị như 600711.395348
người ta có thể làm
ut=`cut -d' ' -f1 </proc/uptime`
ts=`date +%s`
date -d"70-1-1 + $ts sec - $ut sec + 600711.395348 sec" +"%F %T"
và nhận được ngày và thời gian sự kiện.
(Xin lưu ý rằng do lỗi làm tròn số, chữ số thứ hai cuối cùng có thể sẽ không chính xác.).
Chỉnh sửa (2) : lưu ý hãy rằng - theo lời nhận xét của Womble dưới đây, - điều này sẽ chỉ làm việc nếu máy không được ngủ đông vv (Trong trường hợp đó, người ta sẽ trông đẹp hơn ở syslog
configs tại /etc/*syslog*
. Và kiểm tra các tập tin thích hợp Xem thêm : dmesg vs / var / tin nhắn .)
date -d"1970-01-01 + $(date +%s) sec - $(cut -d' ' -f1 </proc/uptime) sec + 600711.395348 sec" +"%F %T.%N %Z"
%Z
, nó sẽ như vậy UTC
, vì date +%s
trả về giây kể từ UTC. Sau đó nó sẽ phải được chuyển đổi theo múi giờ địa phương.
Để mở rộng câu trả lời của Ignacio, các mục có trong dmesg
thường được ghi lại ở nơi khác trên hệ thống, thông qua syslog, sẽ cung cấp cho bạn dấu thời gian "thực". Trừ khi Ubuntu đã thay đổi mặc định do Debian đặt, các mục nhật ký sẽ nằm trong /var/log/kern.log
.
Thời gian đưa ra trong dmesg là tính bằng giây kể từ khi khởi động kernel. Vì vậy, chỉ cần thêm nhiều giây vào khi kernel bắt đầu chạy (gợi ý: thời gian hoạt động).
Trên busybox, 3 lớp lót ở trên không hoạt động, vì vậy đây là cách để tôi tính toán nó một lần (thay thế 1628880.0
bằng dmesg
dấu thời gian của bạn ):
perl -e '@a=split(`/proc/uptime`);print scalar(localtime(time()+$a[0] - 1628880.0)."\n");'
Tôi biết điều này bây giờ đã cũ nhưng dmesg hiện có tùy chọn tích hợp -e hoặc --reatime để hiển thị thời gian theo giờ địa phương.
root@bbs:/var/log# dmesg|tail -1
[50755952.379177] Out of memory in UB 1593: OOM killed process 3183 (sbbs) score 0 vm:747204kB, rss:242764kB, swap:88224kB
root@bbs:/var/log# dmesg -e|tail -1
[Feb20 17:10] Out of memory in UB 1593: OOM killed process 3183 (sbbs) score 0 vm:747204kB, rss:242764kB, swap:88224kB