Saya tertarik mengetahui total waktu yang saya habiskan untuk mengerjakan laptop pada tahun 2016.
last reboot --since 2016-01-01 --until 2016-12-31 | grep -o '(.*)' | grep -v '-'
memberi saya total waktu kerja laptop dalam format ini:
(01:33)
(04:40)
(01:31)
(1+06:41)
(02:47)
(00:30)
Sekarang bagaimana cara menambahkannya?
command-line
bash
text-processing
time
daltonfury42
sumber
sumber
wtmp
log (yang adalah apa yang Anda lihat dalam output darilast
perintah) diatur untuk memutar bulanan (dalam/etc/logrotate.conf
), yang berarti bahwa setelah periode waktu tertentu, log tertua dihapus. Dengan kata lain, apa pun yang Anda coba lakukanlast
, itu tidak akan akuratJawaban:
Berikut ini adalah versi awk + awk:
last
Kolom terakhir adalah dalam format(<days>+hours:minutes)
, di manadays+
dijatuhkan jika periode kurang dari 1 hari.Di sini,
awk
perintah pertama menampilkan kolom terakhir, durasi bunga, untukreboot
entri.Untuk
awk
perintah kedua :FS
adalah[(+:)]
, yaitu, tanda kurung atau+
atau:
. Jadi,(h:m)
dibagi untuk,
h
,m
dan(pertama dan bidang terakhir kosong), dan
(d+h:m)
dibagi untuk,
d
,h
,m
dan(sekali lagi, pertama dan bidang terakhir kosong).
0
dalam kasus ini.h
dand
sekarang mungkin memiliki bagian fraksional.%d
), sehingga setiap bagian fraksional diabaikan.sumber
Mencoba dengan skrip bash dan memperluas perintah Anda. Saya gunakan
dateutils
untuk menambah durasi waktu.Oleh karena itu untuk menggunakan script ini salah satu kebutuhan
dateutils
paket yang tersedia melaluiapt
. (sudo apt install dateutils
)Script ini memperhitungkan uptime saat ini (sesi saat ini) juga, karenanya lebih akurat. Detik tidak dihitung. Unit terendah yang dilaporkan adalah menit.
temp
.2015-01-01
mana uptime saat ini ditambahkan.new
org
dan waktu aktif bersihnew
ditemukan berdasarkan perbedaan.Keluaran:
Script berikut adalah untuk uptime tepat dalam satu tahun dari hari script dijalankan .
sumber
Berikut ini adalah implementasi python dari apa yang saya inginkan, tetapi saya yakin ada cara yang elegan untuk melakukannya dengan bash:
sumber