اطلاعیه

بستن
No announcement yet.

چگونه خروجی دستور tail -f را به صورتی رنگی نمایش دهم

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    چگونه خروجی دستور tail -f را به صورتی رنگی نمایش دهم

    من میخوام با دستور tail از لاگ های سرور خروجی داشته باشم و مثلا پیام هایی که در آن INFO و SEVERE باشه رو به صورت رنگی مثلا خطی که در اون SEVERE هست رو به رنگ قرمز و INFO رو به رنگ سبز نمایش بده؟
    برای اینکه tail این قابلیت رو داشته باشه و یا اینکه جایگزینی به جای tail استفاده کنم برای این منظور از دستور multitail باید استفاده کرد. در حقیقت این دستور به دستور tial -f کلیت میبخشد و شما میتوانید چندین فایل رو در پنجره های متفاوت و خط های highlight با توجه به محتواشون مشاهده کنید. ساختار این دستور:
    کد PHP:
    multitail -/path/to/log 
    رنگ ها هم میتوانند تنظیم شوند اگر رنگ دیفالت را نخواستید میتوانید رنگ مورد نظر خود را در فایل کانفیگ قرار دهید. برای این منظور شما اول باید یک colorscheme در فایل کانفیگ (multitailrc./~) ایجاد کنید. همانند زیر عمل کنید:
    کد PHP:
    vim ~/.multitailrc 
    سپس محتوای زیر را در اون قرار میدهیم:
    کد PHP:
    colorscheme:habili_log
    cs_re
    :green:INFO
    cs_re
    :red:SEVERE 
    حالا با استفاده از کامند زیر لاگ مورد نظر رو بررسی میکنید:
    کد PHP:
    multitail -cS habili_log /path/to/log 
    همانطور که در کامند بالا میبینید از color scheme (طرح رنگ) habili_log استفاده شده.
    راه حل دیگه زمانی که شما روی سرورهای حساسی هستید که نمیتونید ابزارهای غیراستاندارد را نصب کنید ترکیپ کامند tail -f با کامندهای sed یا کامند awk برای اضافه کردن رنگ به جملات انتخابی و مورد نظر شما میباشد. برای این منظور شما ابتدا از کامند tail -f استفاده کنید تا بدون تاخیر خروجی استاندارد را برای شما نمایش بده و سپس با استفاده از | (علامت pipe) خروجی را به سمت دستور awk ارسال کنید و با ساختار زیر خط های رنگی را ایجاد کنید.
    کد PHP:
    tail -/path/to/log awk '
      /INFO/ {print "\033[32m" $0 "\033[39m"}
      /SEVERE/ {print "\033[31m" $0 "\033[39m"}

    راه دیگه استفاده از دستور زیر میباشد که خطی که درر اون کلمه SEVERE هست رو به صورت کامل به رنگ قرمز نمایش میده:
    کد PHP:
    tail -f myfile.log perl -pe 's/.*SEVERE.*/\e[1;31m$&\e[0m/g' 
    عبارت \e[1;31m به شما رنگ قرمز رو برمیگردونه اگر رنگ زرد رو خواستید از عبارت \e[1;33m استفاده کنید و برای رنگ سبز هم از \e[1;32m استفاده کنید.

    راه دیگه استفاده از دستور rainbow هست که به شما اجازه میده تا یکسری عبارات خاص رو به صورت رنگی داشته باشید:
    کد PHP:
    rainbow --red='SEVERE.*' --green='INFO.*' -- tail -f my-file.log 

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X