GNU/Linux >> Belajar Linux >  >> Linux

File log ekor di beberapa mesin melalui ssh

Apa yang Anda lihat adalah efek dari buffer stdout standar di grep disediakan oleh Glibc. Solusi terbaik adalah menonaktifkannya dengan menggunakan --line-buffered (GNU grep, saya tidak yakin implementasi lain apa yang mungkin mendukungnya atau yang serupa).

Adapun mengapa ini hanya terjadi dalam beberapa kasus:

ssh server "tail -f /var/log/server.log | grep test"

menjalankan seluruh perintah dalam tanda kutip di server - jadi grep menunggu untuk mengisi buffernya.

ssh server tail -f /var/log/server.log | grep test

menjalankan grep di mesin lokal Anda pada output tail dikirim melalui saluran ssh.

Bagian kuncinya di sini adalah, bahwa grep menyesuaikan perilakunya tergantung pada apakah itu stdin adalah terminal atau tidak. Saat Anda menjalankan ssh -t , perintah jarak jauh berjalan dengan terminal pengontrol dan dengan demikian grep jarak jauh berperilaku seperti lokal Anda.


lihat ini:multitail

MultiTail memungkinkan Anda memantau file log dan output perintah di beberapa jendela di terminal, mewarnai, memfilter, dan menggabungkan.

Untuk membuntuti log di banyak server, gunakan:

multitail -l 'ssh [email protected] "tail -f /path/to/log/file"' -l 'ssh [email protected] "tail -f /path/to/log/file"'

Linux
  1. Ssh – Masalah Penanganan File Beberapa Koneksi Ssh yang Umum?

  2. Menjalankan File Skrip Melalui Ssh Melalui Sudo?

  3. Perintah Akses File di Linux – temukan, urutkan, kepala, ekor

  1. Bagaimana cara membuat ssh masuk sebagai pengguna yang tepat?

  2. Salin file besar ke beberapa mesin di LAN

  3. Grep dalam file log besar (>14 GB) hanya x GB terakhir?

  1. Apa Cara Nyaman Memeriksa Apa yang Ditambahkan Ke File Log Secara Realtime?

  2. Temukan File Log Firefox?

  3. Grep Dan Ekor -f?