Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

lightning-log-scripts ⚡️

مجموعه‌ای از اسکریپت‌های Bash که برای ساده‌سازی فرآیند خواندن و نظارت بر لاگ‌های نود Core Lightning (CLN) طراحی شده‌اند. این ابزارها امکاناتی مانند تبدیل مُهرهای زمانی UTC به زمان محلی و فیلتر کردن لاگ‌ها بر اساس شناسه کانال را فراهم می‌کنند.


✨ قابلیت‌ها

  • تبدیل زمان محلی: مُهرهای زمانی استاندارد ISO 8601 UTC در لاگ‌های CLN (مانند 2024-01-01T10:30:00.123Z) را به فرمت زمان محلی سیستم شما (مانند 2024-01-01 11:30:00) تبدیل می‌کند. این امر خواندن لاگ‌ها و تطبیق آن‌ها با رویدادهای محلی را بسیار آسان‌تر می‌کند.
  • نظارت ساده (ln_simple_log.sh): یک اسکریپت پایه برای نمایش لحظه‌ای لاگ‌ها (tail -f) با قابلیت تبدیل زمان.
  • فیلتر پیشرفته (ln_advanced_log.sh): یک اسکریپت قدرتمند که از فیلتر کردن لاگ‌ها بر اساس یک شناسه کانال خاص پشتیبانی می‌کند و امکان سفارشی‌سازی گزینه‌های دستور tail را فراهم می‌آورد.

🛠️ پیش‌نیازها

  • محیط Linux/macOS
  • نصب و اجرای نود Core Lightning (CLN) (فایل‌های لاگ معمولاً در ~/.lightning/ قرار دارند)
  • ابزارهای استاندارد خط فرمان: tail، grep، echo، date، while، و شل Bash.

📄 اسکریپت‌ها و نحوه استفاده

ـ ۱. ln_simple_log.sh

این اسکریپت فایل لاگ CLN (به صورت پیش‌فرض ~/.lightning/lightning.log) را به صورت لحظه‌ای (tail -f) می‌خواند و تمام مُهرهای زمانی UTC را با زمان محلی جایگزین می‌کند.

نحوه اجرا

اسکریپت را مستقیماً از ترمینال خود اجرا کنید:

./ln_simple_log.sh

ـ ۲. ln_advanced_log.sh

این اسکریپت قابلیت‌های پیشرفته‌تری از جمله تعیین مسیر فایل لاگ، فیلتر کردن بر اساس شناسه کانال و ارسال گزینه‌های سفارشی به دستور tail را ارائه می‌دهد.

نحوه اجرا

./ln_advanced_log.sh [OPTIONS]

گزینه‌ها (Options)

گزینه کوتاه توضیحات مقدار پیش‌فرض
--log -l مسیر فایل لاگ CLN را مشخص می‌کند. ~/.lightning/lightningd.log
--channel -c لاگ‌ها را فیلتر می‌کند تا فقط خطوط حاوی این شناسه کانال (مثلاً شناسه کوتاه یا بلند کانال) نمایش داده شوند. (بدون فیلتر)
--tail -t گزینه‌های سفارشی برای ارسال به دستور tail (مثلاً -n 100 برای نمایش ۱۰۰ خط آخر و سپس خروج). -f (دنبال کردن/لحظه‌ای)

مثال‌ها

  1. نظارت بر یک کانال خاص به صورت لحظه‌ای:

    ./ln_advanced_log.sh -c 894b9f0868f000b000000000000000000000
  2. مشاهده ۱۰۰ خط آخر فایل لاگ، تبدیل زمان و خروج:

    ./ln_advanced_log.sh -t "-n 100"
  3. نظارت بر یک فایل لاگ سفارشی:

    ./ln_advanced_log.sh -l /var/log/cln/mylog.log

📝 جزئیات فنی (نحوه کارکرد)

هر دو اسکریپت از منطق مشترکی استفاده می‌کنند:

  1. آن‌ها خروجی دستور tail را خط به خط توسط یک لوله (pipe) به حلقه while read line منتقل می‌کنند.
  2. در داخل حلقه، grep -oE مُهر زمانی UTC را با استفاده از یک عبارت منظم (Regular Expression) استخراج می‌کند: [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z.
  3. مُهر زمانی استخراج شده با استفاده از گزینه -d (رشته تاریخ) به دستور date داده می‌شود تا به منطقه زمانی محلی تبدیل شود.
  4. در نهایت، از جایگزینی رشته Bash (${line/$timestamp/$local_time}) برای جایگزینی رشته UTC اصلی با رشته زمان محلی جدید در خط لاگ، پیش از چاپ، استفاده می‌شود.

🤝 مشارکت

اگر پیشنهاداتی برای ویژگی‌های جدید یا اصلاح اشکالات دارید، در باز کردن یک Issue یا ارسال Pull Request درنگ نکنید!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages