مجموعهای از اسکریپتهای 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.
این اسکریپت فایل لاگ CLN (به صورت پیشفرض ~/.lightning/lightning.log) را به صورت لحظهای (tail -f) میخواند و تمام مُهرهای زمانی UTC را با زمان محلی جایگزین میکند.
اسکریپت را مستقیماً از ترمینال خود اجرا کنید:
./ln_simple_log.shاین اسکریپت قابلیتهای پیشرفتهتری از جمله تعیین مسیر فایل لاگ، فیلتر کردن بر اساس شناسه کانال و ارسال گزینههای سفارشی به دستور tail را ارائه میدهد.
./ln_advanced_log.sh [OPTIONS]| گزینه | کوتاه | توضیحات | مقدار پیشفرض |
|---|---|---|---|
--log |
-l |
مسیر فایل لاگ CLN را مشخص میکند. | ~/.lightning/lightningd.log |
--channel |
-c |
لاگها را فیلتر میکند تا فقط خطوط حاوی این شناسه کانال (مثلاً شناسه کوتاه یا بلند کانال) نمایش داده شوند. | (بدون فیلتر) |
--tail |
-t |
گزینههای سفارشی برای ارسال به دستور tail (مثلاً -n 100 برای نمایش ۱۰۰ خط آخر و سپس خروج). |
-f (دنبال کردن/لحظهای) |
-
نظارت بر یک کانال خاص به صورت لحظهای:
./ln_advanced_log.sh -c 894b9f0868f000b000000000000000000000
-
مشاهده ۱۰۰ خط آخر فایل لاگ، تبدیل زمان و خروج:
./ln_advanced_log.sh -t "-n 100" -
نظارت بر یک فایل لاگ سفارشی:
./ln_advanced_log.sh -l /var/log/cln/mylog.log
هر دو اسکریپت از منطق مشترکی استفاده میکنند:
- آنها خروجی دستور
tailرا خط به خط توسط یک لوله (pipe) به حلقهwhile read lineمنتقل میکنند. - در داخل حلقه،
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. - مُهر زمانی استخراج شده با استفاده از گزینه
-d(رشته تاریخ) به دستورdateداده میشود تا به منطقه زمانی محلی تبدیل شود. - در نهایت، از جایگزینی رشته Bash (
${line/$timestamp/$local_time}) برای جایگزینی رشته UTC اصلی با رشته زمان محلی جدید در خط لاگ، پیش از چاپ، استفاده میشود.
اگر پیشنهاداتی برای ویژگیهای جدید یا اصلاح اشکالات دارید، در باز کردن یک Issue یا ارسال Pull Request درنگ نکنید!