Mengakhiri ekor -f setelah mencetak n baris


10

Saya punya yang berikut ini.

  1. Proses Java menulis log pada file
  2. Script shell memulai proses Java.

Saya perlu membaca file log setelah memulai proses Java untuk memeriksa awal yang benar.

Saya sudah mencoba tail -ftetapi tetap menambahkan selamanya. Saya perlu tailberhenti setelah mencetak n baris. Ada cara seperti -nopsi untuk jalur previuos?


1
Apakah file log Anda dibersihkan setiap kali, setelah skrip shell menjalankan proses Java?
c0rp

Saya menggunakan log4j dengan mode tambahan untuk menulis file log. Putar setelah dimensi file naik hingga 10MB.
theShadow89

Jawaban:


24

Anda dapat menyalurkan output dari tail -fke headuntuk membatasi jumlah garis yang ditampilkan:

tail -f [PATH] | head -n 100

untuk hanya menampilkan 100 baris secara total.


7

Baris baru saja

Dengan dataran tail -f, 10 baris pertama dari file seperti yang sudah ada:

tail -f file.log | head -30

menulis 10 baris log.txtketika dijalankan, dan 20 (n-10) baris yang ditambahkan kemudian.

Dengan file log, Anda biasanya menggunakan -f( --follow) untuk melihat baris yang ditulis di masa depan.

Untuk melihat hanya 30 baris yang ditulis setelah taildimulai, batasi keluaran awal menjadi 0:

tail -f -n0 file.log | head -30
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.