Cara melihat x terbaru dari log service systemctl


21

Saya sedang mencari cara, untuk hanya mencetak garis X terakhir dari layanan systemctl di Debian. Saya ingin menginstal kode ini ke dalam skrip, yang menggunakan entri log yang dicetak dan terbaru. Saya telah menemukan posting ini tetapi saya tidak dapat memodifikasinya untuk keperluan saya.

Saat ini saya menggunakan kode ini, yang hanya memberi saya potongan kecil file log:

journalctl --unit=my.service --since "1 hour ago" -p err

Untuk memberikan contoh seperti apa hasilnya, cukup ketik perintah di atas untuk layanan apa pun dan gulir hingga akhir log. Kemudian salin 300 baris terakhir mulai dari bawah.

Ide saya adalah menggunakan egrep ex. egrep -m 700 .tapi saya tidak beruntung sejak sekarang.

Jawaban:



7

Hanya pipa output ke tail:

journalctl --unit=my.service | tail -n 300

The tailperintah mencetak baris terakhir (10 secara default) yang diterima di stdin ke stdout.


1
Benar-benar lupa tentang ekor - ide bagus, terima kasih banyak!
user3191334

5
Ekor bisa sangat lambat untuk kayu bulat besar. Built-in -njournalctrl adalah apa yang Anda inginkan. misalnyajournalctl -n 300
Drakes

4

Jika Anda ingin melihat n jumlah baris terakhir dan melihat pesan baru saat dicetak ke log, coba ini:

journalctl -u <service name> -n <number of lines> -f

Di mana -nmenunjukkan jumlah baris yang ingin Anda lihat dari ekor log, dan -fmenentukan bahwa Anda ingin mengikuti log saat itu berubah.


4

Hanya:

journalctl -u SERVICE_NAME -e

Parameter -e singkatan dari:

-e --pendana; Langsung lompat ke ujung jurnal di dalam alat pager tersirat. Ini menyiratkan -n 1000 untuk menjamin bahwa pager tidak akan buffer log ukuran tidak terbatas. Ini mungkin diganti dengan -n eksplisit dengan beberapa nilai numerik lainnya, sementara -nall akan menonaktifkan batas ini.


1

karena solusi perintah ekor aleady disediakan. Saya mencoba dengan menggunakan perintah sed dan bekerja dengan baik

Perintah di bawah ini akan menampilkan 300 baris terakhir

journalctl --unit=my.service | sed -e :a -e '$q;N;301,$D;ba' 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.