Saya menonton log yang berbeda
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
Bagaimana saya bisa membuat output setiap log berwarna berbeda?
command-line
colors
tail
Daniel W.
sumber
sumber
multitail
dan jawaban dalam pertanyaan iniJawaban:
Menggunakan GNU
grep
untuk pewarnaan:Perhatikan bahwa 2 yang pertama dimulai di latar belakang. Itu berarti mereka tidak akan dibunuh jika Anda menekan Ctrl-C(shell secara eksplisit mengabaikan SIGINT untuk pekerjaan asinkron).
Untuk mencegahnya, Anda bisa melakukannya:
Dengan begitu, setelah Ctrl-C, yang terakhir
tail+grep
dancat
mati (dari SIGINT) dan dua ekor grep + lainnya akan mati karena SIGPIPE pada saat mereka menulis sesuatu.Atau kembalikan handler SIGINT (tidak akan bekerja dengan semua shell):
Anda juga dapat melakukannya di
color
fungsi. Itu tidak berlaku untuktail
, tetapitail
akan mati karena SIGPIPE saat berikutnya ia menulis jikagrep
mati.Atau jadikan seluruh ekor + grep fungsi:
Atau semuanya:
sumber
tailc
fungsi yang bekerja paling baik dan terlihat paling intuitif dalam skrip.Sesuatu seperti ini bekerja untuk saya:
Penjelasan:
tail -f file
: tambahkan data saat file bertambahawk -W interactive
: diaturawk
ke mode interaktif'{printf "\033[1;31m%s\033[0m\n", $0}'
cetak output yang dizinkan ke terminal.\033[1;31m
berarti merah\033[1;32m
berarti hijau\033[1;34m
artinya birusumber
-W interactive
tampaknya menjadi-mawk
spesifik. (caramawk
buffer inputnya secara default juga unik, dan-W interactive
tidak akan diperlukan dalamawk
implementasi lain ).