আমি বিভিন্ন লগ দ্বারা দেখছি
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
আমি কীভাবে প্রতিটি লগের আউটপুট আলাদাভাবে রঙিন করতে পারি?
multitail
এই প্রশ্নের উত্তর এবং তার উত্তরগুলি দেখতে পাব
আমি বিভিন্ন লগ দ্বারা দেখছি
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
আমি কীভাবে প্রতিটি লগের আউটপুট আলাদাভাবে রঙিন করতে পারি?
multitail
এই প্রশ্নের উত্তর এবং তার উত্তরগুলি দেখতে পাব
উত্তর:
grep
রঙের জন্য জিএনইউ ব্যবহার :
color() { GREP_COLOR=$1 grep --color '.*'; }
(tail -qf /var/log/syslog | color 31 &
tail -qf /var/log/fail2ban.log | color 32 &
tail -qf /var/log/nginx/error.log | color 33)
নোট করুন যে প্রথম 2 পটভূমিতে শুরু হয়েছে। তার মানে আপনি চাপ দিলে তাদের হত্যা করা হবে না Ctrl-C(অ্যাসিঙ্ক্রোনাস কাজের জন্য শেল স্পষ্টতই SIGINT উপেক্ষা করুন)।
এটি রোধ করতে, আপনি পরিবর্তে এটি করতে পারেন:
color() { GREP_COLOR=$1 grep --line-buffered --color=always '.*'; }
(tail -qf /var/log/syslog | color 31 &
tail -qf /var/log/fail2ban.log | color 32 &
tail -qf /var/log/nginx/error.log | color 33) | cat
এই ভাবে, উপরে Ctrl-C, গত tail+grep
এবং cat
(SIGINT এর) ডাই এবং অন্য দুটি, grep + + মুদ্রার উলটা পিঠ একটি SIGPIPE এর পরের বার যখন কিছু লিখতে মারা যাবে।
অথবা সাইন্ট হ্যান্ডলারটি পুনরুদ্ধার করুন (সমস্ত শেল দিয়ে কাজ করবে না):
color() { GREP_COLOR=$1 grep --color '.*'; }
((trap - INT; tail -qf /var/log/syslog | color 31) &
(trap - INT; tail -qf /var/log/fail2ban.log | color 32) &
tail -qf /var/log/nginx/error.log | color 33)
আপনি এটি ফাংশনেও করতে পারেন color
। এটি প্রযোজ্য হবে না tail
, তবে tail
মারা যাওয়ার পরে পরের বার এটি লিখলে একটি সিপাইপিতে grep
মারা যাবে।
color() (trap - INT; GREP_COLOR=$1 exec grep --color '.*')
(tail -qf /var/log/syslog | color 31 &
tail -qf /var/log/fail2ban.log | color 32 &
tail -qf /var/log/nginx/error.log | color 33)
বা পুরো লেজ + গ্রেপ একটি ফাংশন করুন:
tailc() (trap - INT; export GREP_COLOR="$1"; shift; tail -qf -- "$@" |
grep --color '.*')
tailc 31 /var/log/syslog &
tailc 32 /var/log/syslog &
tailc 33 /var/log/nginx/error.log
বা পুরো জিনিস:
tailc() (
while [ "$#" -ge 2 ]; do
(trap - INT; tail -f -- "$2" | GREP_COLOR=$1 grep --color '.*') &
shift 2
done
wait
)
tailc 31 /var/log/syslog 32 /var/log/syslog 33 /var/log/nginx/error.log
tailc
ফাংশনটি দিয়ে চলেছি যা সবচেয়ে ভাল কাজ করেছে এবং স্ক্রিপ্টটিতে সবচেয়ে স্বজ্ঞাত দেখাচ্ছে।
এই মত কিছু আমার জন্য কাজ করেছে:
(tail -f /var/log/syslog | awk -W interactive '{printf "\033[1;31m%s\033[0m\n", $0}' & \
tail -f /var/log/auth.log | awk -W interactive '{printf "\033[1;32m%s\033[0m\n", $0}' & \
tail -f /var/log/Xorg.0.log | awk -W interactive '{printf "\033[1;34m%s\033[0m\n", $0}')
ব্যাখ্যা:
tail -f file
: ফাইল বাড়ার সাথে সাথে ডেটা যুক্ত করুনawk -W interactive
: awk
ইন্টারেক্টিভ মোডে সেট করুন'{printf "\033[1;31m%s\033[0m\n", $0}'
টার্মিনালে রঙিন আকারের আউটপুট প্রিন্ট করুন।\033[1;31m
মানে লাল\033[1;32m
মানে সবুজ\033[1;34m
মানে নীল-W interactive
mawk
স্পেসিফিক মনে হচ্ছে । ( mawk
ডিফল্টরূপে এর ইনপুটটিকে বাফার করার উপায়টিও অনন্য is এবং -W interactive
অন্যান্য awk
প্রয়োগের ক্ষেত্রেও এটির প্রয়োজন হবে না )