Solusi 1:
pv
adalah perintahmu! P ipe V iewer mencetak statistik tentang data yang melewatinya, dan dapat berjalan di mana saja di saluran Anda, karena ia menyalurkan stdin langsung ke stdout. Misalnya:
tail -f /var/log/nginx/access.log | pv --line-mode --rate > /dev/null
pv
perintah mencetak ke stderr jumlah baris per detik saat ini (defaultnya adalah byte per detik), yang, untuk sumber data khusus ini (file log default Nginx), sama dengan permintaan web yang masuk per detik. Saya hanya peduli dengan hitungan, jadi saya mem-pipe stdout ke /dev/null
. Ada juga opsi seperti:
-b
(total jumlah baris),--average-rate
(tarif rata-rata sejak awal), dan--timer
(melacak berapa lama pipa telah berjalan).
Jika Anda tidak mengatakan --line-mode
, ini akan menghitung byte, yang mungkin bukan yang Anda inginkan untuk log server, tetapi bisa berguna di tempat lain.
Catatan akhir:... | pv -lb > file.txt
sangat mirip dengan ... | tee file.txt | awk '{printf "\r%lu", NR}'
, yang juga berguna untuk menghitung garis, tetapi pv
panggilan jauh lebih pendek, meskipun hasilnya tidak begitu menarik — pv
memperbarui setiap detik secara default, sedangkan awk
perintah pembaruan terus menerus.
Solusi 2:
Mungkin Anda harus mencoba logtop
?
tail -f foobar.log |logtop
Solusi 3:
watch -n 3 "wc -l logfile"
halaman manual
tonton - jalankan program secara berkala, menampilkan keluaran layar penuhSecara default, program dijalankan setiap 2 detik; gunakan -n atau --interval untuk menentukan interval yang berbeda.