NEWSLOG(5) InterNetNews Documentation NEWSLOG(5)

newslog - پرونده‌های گزارش وقایع INN

اکثر پرونده‌های گزارش وقایع (log) ایجادشده توسط برنامه‌های Usenet در دایرکتوری pathlog تنظیم‌شده در inn.conf قرار دارند و دارای پسوند ".log" هستند. معمولاً چندین نسخه با پسوند اضافی مانند ".1"، ".2" و غیره نگهداری می‌شوند -- هرچه شماره بزرگ‌تر باشد، لاگ قدیمی‌تر است. این نسخه‌های قدیمی در pathlog/OLD نگهداری می‌شوند؛ آن‌ها ممکن است فشرده‌سازی شده باشند و بنابراین پسوندی مانند ".1.gz"، ".2.gz" و غیره داشته باشند، تا حداکثر ".nn.gz" که در آن "nn" تعداد پرونده‌های گزارش قدیمی نگهداری‌شده توسط scanlogs است و توسط logcycles در inn.conf تنظیم می‌شود.

اسکریپت scanlogs و ابزارهای مرتبط مسئول چرخش (rotate) و فشرده‌سازی این پرونده‌ها هستند. برخی پرونده‌های گزارش وقایع همیشه دارای داده هستند (مانند news.notice)، برخی دیگر تنها در صورت وجود مشکل حاوی داده خواهند بود (مانند news.err)، و برخی تنها در صورتی ایجاد می‌شوند که برنامه‌ای خاص استفاده شود (مانند send-uucp.log که توسط send-uucp استفاده می‌شود) یا یک پارامتر پیکربندی تنظیم شده باشد (مانند innfeed.log مورد استفاده توسط innfeed هنگامی که debug-level در innfeed.conf تنظیم شده باشد).

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

در اینجا پرونده‌های گزارش وقایع استفاده‌شده توسط INN آورده شده‌اند:

این پرونده تعداد پیام‌های کنترلی newgroup و rmgroup دیده‌شده برای هر گروه خبری را نگه می‌دارد. این شمارش مربوط به تعداد پیام‌های کنترلی با آرگومان‌های مشخص‌شده است، صرف‌نظر از اینکه آیا واقعاً پردازش شده‌اند یا خیر. تمام آرگومان‌های کنترلی، از جمله موارد نامعتبر، شمرده می‌شوند. نمونه‌ای از خطوطی که در این پرونده گزارش وقایع یافت می‌شود:
3 Control: newgroup foo.bar moderated
3 Control: rmgroup misc.removed
1 Control: newgroup misc.created

این پرونده توسط tally.control به‌روزرسانی می‌شود، که در صورت وجود هر یک از این دو پرونده گزارش در pathlog توسط scanlogs فراخوانی می‌شود:

newgroup.log
rmgroup.log

این دو پرونده گزارش وقایع شامل یک خط خلاصه شامل شرح پیام کنترلی و اقدام انجام‌شده توسط controlchan هستند، که به دنبال آن مقاله با چهار فاصله تورفتگی و سپس یک خط خالی می‌آید. در حالی که این پرونده‌ها چرخانده (rotated) می‌شوند، پرونده control.log چرخانده نمی‌شود تا شمارش پیام‌های کنترلی دیده‌شده حفظ شود.

توجه داشته باشید که سایر پرونده‌های گزارش وقایع کنترلی نیز در صورت وجود توسط scanlogs چرخانده می‌شوند، اما محتوای آن‌ها خلاصه‌سازی نمی‌شود. نام آن‌ها به شرح زیر است:

checkgroups.log
default.log
ihave.log
miscctl.log
sendme.log
sendsys.log
senduuname.log
version.log

به منظور ایجاد این پرونده‌ها، فیلدهای <type> و <action> در ورودی‌های مربوطه control.ctl باید به درستی تنظیم شوند. برای نمونه:

Type            Action              Meaning
----            ------              -------
all             log=miscctl         Log all messages by default.
newgroup        doit=newgroup       Create group and log message.
newgroup        log=newgroup        Log message.
rmgroup         verify-*=rmgroup    PGP verify, remove group
                                    and log message.
checkgroups     doit=checkgroups    Process and log message.
برنامه controlbatch تمام پیام‌های وضعیت را به این پرونده اضافه می‌کند. این پرونده توسط scanlogs چرخانده می‌شود.
این پرونده شامل خروجی استاندارد و خطای استاندارد هر برنامه‌ای است که توسط innd راه‌اندازی (spawn) می‌شود، مانند فیدهای کانال پیکربندی‌شده در newsfeeds. این پرونده معمولاً باید خالی باشد. در صورت خالی نبودن، scanlogs تعداد ۵۰ خط اول این پرونده گزارش را چاپ می‌کند تا در گزارش‌های روزانه Usenet تولیدشده توسط news.daily نمایش داده شوند. سپس، scanlogs این پرونده گزارش را می‌چرخاند.
به‌طور پیش‌فرض، هنگامی که news.daily قصد دارد مقالات خبری قدیمی را منقضی کند، نام برنامه‌ای را که فراخوانی می‌کند به همراه "start" و زمان آغاز آن می‌نویسد. سپس هرگونه خروجی از آن برنامه با چهار فاصله تورفتگی نوشته می‌شود. پس از آن، نام برنامه به همراه "end" و زمان پایان آن نوشته می‌شود.

برنامه‌های فراخوانی‌شده، در صورت نیاز، به ترتیب عبارتند از: expireover، ctlinnd (با گزینه "lowmark")، expirerm و expire. مقالات حذف‌شده در expire.list و نشانه‌های پایین (low mark) برای هر گروه خبری (یعنی شماره قدیمی‌ترین مقاله موجود در گروه خبری) در expire.lastlowmark فهرست می‌شوند.

پس از فرآیند انقضا، scanlogs پرونده expire.log را می‌چرخاند.

هنگامی که debug-level در innfeed.conf تنظیم شده باشد، innfeed پیام‌های اشکال‌زدایی را به این پرونده اضافه می‌کند. توجه داشته باشید که نام این پرونده را می‌توان با پارامتر log-file در innfeed.conf تغییر داد. در هر صورت، پرونده گزارش مربوطه توسط scanlogs چرخانده می‌شود.

علاوه بر این، پرونده innfeed-delayed.conf نیز بررسی می‌شود تا در صورت استفاده از delayer(8) به همراه innfeed، پرونده گزارش احتمالی دیگری برای چرخش یافت شود.

همچنین innfeed در صورتی که gen-html روی false تنظیم شده باشد وضعیت خود را در innfeed.status (یا نام تنظیم‌شده در status-file) ثبت می‌کند، اما این پرونده گزارش توسط scanlogs پردازش نمی‌شود.

این پرونده مقالات دریافت‌شده توسط innd را ثبت می‌کند. خطوط نمونه عبارتند از:
Aug 25 13:37:41.839 + news.server.fr <cancel.4066@foo.com>
    1658 a.peer other.server.org inpaths!
Aug 25 13:37:41.839 c news.server.fr <cancel.4066@foo.com>
    Cancelling <m070725@foo.com>
Aug 25 13:37:54.638 - a.peer <23k82@bar.net> 437 Poison newsgroup

خط اول نشان می‌دهد که مقاله‌ای از "news.server.fr" پذیرفته شده است ("+"). شناسه Message-ID آن "<cancel.4066@foo.com>" است و ما مقاله را به دو همتا ("a.peer" و "other.server.org"، همان‌طور که در newsfeeds مشخص شده) و "inpaths!" (برای جزئیات بیشتر درباره آن، ninpaths را ببینید) ارسال خواهیم کرد. خط دوم ذکر می‌کند که مقاله قبلی یک پیام لغو ("c") برای "<m070725@foo.com>" است و پردازش شده است (در واقع، controlchan تمام مقالات کنترلی را به جز پیام‌های لغو که توسط innd رسیدگی می‌شوند، پردازش می‌کند). خط سوم نشان می‌دهد مقاله‌ای که Message-ID آن "<23k82@bar.net>" است رد شده است ("-") زیرا در یک گروه خبری سمی (poison) ارسال شده است (یک فیلتر Perl یا Python واقع در pathfilter باید عامل این رد کردن بوده باشد).

برای اطلاعات بیشتر در مورد قالب این پرونده گزارش، بخش "LOGGING" از صفحه راهنمای innd(8) را ببینید.

ابزار innreport مقالات ردشده گزارش‌شده در این پرونده را خلاصه می‌کند و scanlogs آن را می‌چرخاند.

تمام پیام‌های خطای بحرانی صادرشده توسط innd از طریق syslog به این پرونده اضافه می‌شوند. این پرونده گزارش معمولاً باید خالی باشد. در صورت خالی نبودن، scanlogs تعداد ۵۰ خط اول این پرونده گزارش را چاپ می‌کند تا در گزارش‌های روزانه Usenet تولیدشده توسط news.daily نمایش داده شوند. سپس، scanlogs این پرونده گزارش را می‌چرخاند.

شما باید خط زیر را در پرونده syslog.conf سیستم خود داشته باشید و از نویسه تب (tab) به عنوان جداکننده استفاده کنید:

news.crit           <pathlog>/news.crit

(یک مدخل نمونه نشان داده شده است؛ این مدخل باید با pathlog در inn.conf مطابقت داشته باشد و با تب جدا شده باشد.)

تمام پیام‌های خطای عمده صادرشده توسط innd از طریق syslog به این پرونده اضافه می‌شوند. این پرونده گزارش معمولاً باید خالی باشد. در صورت خالی نبودن، scanlogs تعداد ۵۰ خط اول این پرونده گزارش را چاپ می‌کند تا در گزارش‌های روزانه Usenet تولیدشده توسط news.daily نمایش داده شوند. سپس، scanlogs این پرونده گزارش را می‌چرخاند.

شما باید خط زیر را در پرونده syslog.conf سیستم خود داشته باشید و از نویسه تب به عنوان جداکننده استفاده کنید:

news.err            <pathlog>/news.err

(یک مدخل نمونه نشان داده شده است؛ این مدخل باید با pathlog در inn.conf مطابقت داشته باشد و با تب جدا شده باشد.)

تمام پیام‌های خطای استاندارد و پیام‌های وضعیت صادرشده توسط innd، innfeed، nnrpd و برخی برنامه‌های دیگر از طریق syslog به این پرونده اضافه می‌شوند. اسکریپت scanlogs از اسکریپت پرل innreport برای خلاصه‌سازی این پرونده استفاده می‌کند. در صورت وجود خطوط ناشناخته در news.notice، ابزار innreport همچنین تعداد خطوط ناشناخته به میزان max_unknown اول این پرونده گزارش را چاپ می‌کند تا در گزارش‌های روزانه Usenet تولیدشده توسط news.daily نمایش داده شوند. این پارامتر را می‌توان در innreport.conf تنظیم کرد. سپس، scanlogs این پرونده گزارش را می‌چرخاند.

شما باید خط زیر را در پرونده syslog.conf سیستم خود داشته باشید و از نویسه تب به عنوان جداکننده استفاده کنید:

news.notice         -<pathlog>/news.notice

(یک مدخل نمونه نشان داده شده است؛ این مدخل باید با pathlog در inn.conf مطابقت داشته باشد و با تب جدا شده باشد.)

علامت خط تیره به عنوان نخستین نویسه مسیر news.notice به syslogd دستور می‌دهد که پرونده گزارش را با هر بار ثبت ورودی جدید با دیسک همگام نکند (در غیر این صورت کارایی را کاهش می‌دهد). بسته به دیمن syslog مورد استفاده شما، همگام‌سازی لاگ ممکن است به صورت پیش‌فرض از قبل غیرفعال باشد (برای نمونه در rsyslogd یا syslog-ng این‌گونه است).

برنامه nntpsend تمام پیام‌های وضعیت را به این پرونده اضافه می‌کند. این پرونده توسط scanlogs چرخانده می‌شود.
در صورتی که امکانات syslog در دسترس نباشد یا فلگ -l به perl-nocem ارسال شود، برنامه perl-nocem تمام پیام‌های وضعیت را به این پرونده اضافه می‌کند (در غیر این صورت، از امکانات syslog استفاده می‌شود که در این صورت پیام‌های وضعیت به پرونده‌ای معمولاً با نام news.notice در pathlog اضافه می‌شوند). پرونده perl-nocem.log توسط innreport پردازش شده و توسط scanlogs چرخانده می‌شود.
برنامه send-ihave تمام پیام‌های وضعیت را به این پرونده اضافه می‌کند. این پرونده توسط scanlogs چرخانده می‌شود.
برنامه send-uucp تمام پیام‌های وضعیت را به این پرونده اضافه می‌کند. این پرونده توسط scanlogs چرخانده می‌شود.
این گزارش تعداد مقالاتی را نگه می‌دارد که به دلیل ارسال به گروه‌های خبری که در سایت محلی وجود ندارند، رد شده‌اند. این پرونده توسط innreport در هنگام پردازش پرونده گزارش news.notice به‌روزرسانی می‌شود و به ترتیب عددی معکوس نگهداری می‌شود (محبوب‌ترین گروه ردشده در ابتدا). این پرونده چرخانده نمی‌شود تا شمارش مقالات ارسال‌شده به گروه‌های خبری که در پرونده active سرور خبر وجود ندارند حفظ شود.

توجه داشته باشید که logtrash باید در inn.conf روی true تنظیم شده باشد تا این پرونده تولید شود.

در نهایت، این پرونده‌ها نیز در صورت وجود توسط scanlogs چرخانده می‌شوند، اما محتوای آن‌ها خلاصه‌سازی نمی‌شود. نام آن‌ها به شرح زیر است:

badcontrol.log
badpgp.log
failedpgp.log

آن‌ها می‌توانند توسط برنامه‌هایی که مقالات را با PGP تأیید می‌کنند، مورد استفاده قرار گیرند.

نوشته‌شده توسط Landon Curt Noll <chongo@toad.com> و Rich $alz <rsalz@uunet.uu.net> برای InterNetNews. بازنویسی و تبدیل به POD توسط Julien Elie.

control.ctl(5), ctlinnd(8), delayer(8), expire(8), expireover(8), expirerm(8), inn.conf(5), innd(8), innfeed.conf(5), innreport(8), innreport.conf(5), news.daily(8), nnrpd(8), nntpsend(8), scanlogs(8), send-ihave(8), send-uucp(8), syslog.conf(5), tally.control(8).

2025-05-09 INN 2.7.4