Skip to content

PersianLightning/lightning-log-scripts

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages