Sistemin önyüklendiği zaman damgasını nasıl güvenilir bir şekilde alabilirim?


13

uptimeKomutun farkındayım , ancak önyüklemeden bu yana saniye döndürüyor, bu yüzden şu anki zaman damgasından bu sayıyı soyutlatırsam, teoride, çalışma süresini ve geçerli zaman damgasını okuduktan sonra ikinci değişiklikler olursa farklı bir sonuç elde edebilirim. uptime -sistediğim, ama centos üzerinde mevcut değil (btw nasıl hesaplanır?). / Proc dir zamanını alabilir miyim? Bu bana uygun sayıyı veriyor gibi görünüyor, ama her linux sisteminin / proc önyüklemesinde oluşturulmuş olup olmadığını merak ediyorum.


Hangi biçimi istiyorsunuz? HH:MM:SS? Başka bir şey?
terdon

1
@terdon, UNIX zaman damgası
Fluffy

Yanıtlar:


12

Her şeyden önce, crtimebir Linux üzerinde zor . Dedi ki,

$ stat -c %z /proc/ 
2014-10-30 14:00:03.012000000 +0100

veya

$ stat -c %Z /proc/ 
1414674003

muhtemelen tam olarak ihtiyacınız olan şeydir. /procDosya sistemi standart LFS tarafından tanımlanır ve herhangi bir Linux sistemi için hem de orada olmalı çoğu için (tüm?) UNIXen.

Alternatif olarak, gerçekten saniye hassasiyetine ihtiyacınız olmadığını, ancak yalnızca zaman damgasının doğru olması gerektiğini varsayarsak, şunları kullanabilirsiniz who:

$ who -b
   system boot  2014-10-30 14:00

Kimden man who: -b, - son sistem önyüklemesinin önyükleme süresi

GNU kullanarak çağdan bu yana bunu saniyelere dönüştürebilirsiniz date:

$ date -d "$(who -b | awk '{print $4,$3}' | tr - / )" +%s
1414674000

1
Küçük bir uyarı, önyükleme süresinin RTC'den veya bir RTC yoksa bazı varsayılanlardan belirlenmesidir. Bu kez utmp(init ile) "sistem önyükleme" girişi olarak yazılır ve tarafından okunur who -b. Sistem zamanı, başlangıç ​​aşamasına kadar yanlış olabilir. who -bbenim rPi üzerinde 1970 yılında önyükleme diyor ve başka bir
RTC'siz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.