Saya ingin menampilkan /proc/uptime
dalam format yang baik sebagai:
DD:HH:MM:SS
/proc/uptime
beri saya waktu sistem dalam detik, apakah ada solusi standar yang mengubah detik ke format ini?
Saya ingin menampilkan /proc/uptime
dalam format yang baik sebagai:
DD:HH:MM:SS
/proc/uptime
beri saya waktu sistem dalam detik, apakah ada solusi standar yang mengubah detik ke format ini?
Jawaban:
Anda dapat melakukan ini misalnya dengan perl dan beberapa matematika sederhana:
cat /proc/uptime | perl -ne '/(\d*)/ ; printf "%02d:%02d:%02d:%02d\n",int($1/86400),int(($1%86400)/3600),int(($1%3600)/60),$1%60'
Jika Anda tidak membutuhkan detik, Anda dapat menjalankan uptime
perintah. Keluarannya kemudian dapat diubah menjadi DD: HH: MM.
Misalnya menggunakan (berfungsi dengan cara ini hanya jika waktu aktif> 1 jam)
uptime | perl -ne '/(\d*) day[^\d]*(\d*):(\d*)/ ; printf "%02d:%02d:%02d\n", $1, $2, $3'
Tidak, karena itu bukan masalah yang sulit. Bagi jumlah detik dengan 86400 menggunakan divisi integer untuk mendapatkan jumlah hari. Ambil sisanya dan bagi dengan 3600 untuk mendapatkan jumlah jam. Bagi sisanya dengan 60 untuk mendapatkan jumlah menit, dan Anda tersisa dengan jumlah detik. Semua ini dapat dilakukan dari shell menggunakan expr
perintah jika shell Anda cukup kuno untuk tidak mendukung aritmatika secara asli
Mengambil jumlah detik sejak zaman dan mengubahnya menjadi tanggal yang dapat dibaca manusia adalah masalah yang sulit, dan ada cara standar untuk melakukan itu, misalnya date -r SECONDS
dari shell. Tapi itu masalah yang berbeda.
Adaptasi bagian yang relevan dari jawaban ini .
Selama waktu aktif Anda kurang dari satu tahun, Anda dapat menggunakan perintah berikut:
TZ=UTC date -d@$(cut -d\ -f1 /proc/uptime) +'%j %T' | awk '{print $1-1"d",$2}'
Saya mengekstrak bidang pertama dari file uptime, karena setidaknya di Linux saya, ada bidang kedua yang berisi total waktu idle. Saya menganggap itu sebagai jumlah detik sejak zaman, dan mengubahnya menjadi hari tahun diikuti oleh waktu dalam jam, menit dan detik. Karena hari tahun dimulai pukul satu, saya kurangi satu dari itu dalam awk
doa terakhir saya .
\n
untuk baris baru akan bagus!