NINPATHS(8) InterNetNews Documentation NINPATHS(8)

ninpaths - گزارش آمار فیلد سرآیند Path در یوزنت (inpaths جدید)

ninpaths -p -d dumpfile

ninpaths -r site -u dumpfile [-u dumpfile ...] -v level

این یک برنامهٔ کارآمد و کم‌مصرف (از نظر فضا) برای گزارش‌دهی inpaths است. نحوهٔ کار آن به این صورت است: فیلدهای سرآیند Path از طریق یک فید کانال در INN یا روش مشابه دیگری به آن داده می‌شوند، و برنامه گه‌گاه تمام شمارنده‌های داخلی انباشته‌شده تا آن لحظه را در یک فایل دامپ می‌نویسد. نمونه‌ای دیگر از برنامه، تمام فایل‌های دامپ را برمی‌دارد، آن‌ها را با هم جمع می‌زند و در قالب یک گزارش تنظیم می‌کند. هدف از گزارش نهایی، خلاصه‌سازی فراوانی تکرار سایت‌ها در فیلدهای سرآیند Path مقالات است.

برخی از سایت‌های مرکزی داده‌های فیلد سرآیند Path را از چندین سرور خبری (news server) که این برنامه یا برنامه‌ای مشابه را اجرا می‌کنند جمع‌آوری کرده و سپس آماری از پرتکرارترین سرورهای خبری دیده‌شده در فیلدهای سرآیند Path مقالات یوزنت (Usenet) ارائه می‌دهند. اسکریپت sendinpaths را می‌توان به‌صورت روزانه اجرا کرد تا آمار انباشته‌شده را به چنین سایتی ایمیل کند و فایل‌های دامپ قدیمی را حذف نماید.

شما می‌توانید با انجام موارد زیر یک پیکربندی فعال ایجاد کنید:

1.
یک دایرکتوری در مسیر pathlog/path ایجاد کنید (در اینجا و تمام مراحلی که در ادامه می‌آیند، pathlog را با مسیر کامل دایرکتوری گزارش‌های INN خود جایگزین کنید). نام زیردایرکتوری "path" را تغییر ندهید زیرا توسط sendinpaths استفاده می‌شود.
2.
یک فید کانال را با استفاده از یک مدخل newsfeeds مانند زیر راه‌اندازی کنید:
inpaths!\
    :*\
    :Tc,WP:<pathbin>/ninpaths -p -d <pathlog>/path/inpaths.%d

اگر نسخهٔ INN شما از "WP" پشتیبانی می‌کند (نسخه‌های 2.0 و جدیدتر همگی پشتیبانی می‌کنند). <pathbin> را با مسیر کامل دایرکتوری باینری‌های INN و <pathlog> را با مسیر کامل دایرکتوری لاگ‌های INN خود جایگزین نمایید.

توجه داشته باشید که قرارداد نام‌گذاری فایل‌های دامپ تولیدشده توسط inpaths نباید تغییر کند. sendinpaths به‌طور صریح فایل‌هایی را که نام آن‌ها با "inpaths." شروع می‌شود در دایرکتوری <pathlog>/path جستجو می‌کند.

3.
دستور زیر را برای شروع ثبت این آمارها اجرا کنید:
ctlinnd reload newsfeeds 'inpaths feed setup'
4.
این دو خط را در crontab کاربر news وارد کنید:
6   6 * * *   <pathbin>/ctlinnd flush inpaths!
10  6 * * *   <pathbin>/sendinpaths

(زمان دقیق اهمیتی ندارد). این کار ninpaths را وادار می‌کند تا روزی یک بار یک فایل دامپ تولید کند. سپس، چند دقیقه بعد، sendinpaths دامپ‌ها را جمع‌آوری کرده، گزارشی تهیه می‌کند، آمارهای جمع‌آوری‌شده را ارسال می‌نماید و دامپ‌های قدیمی را حذف می‌کند.

توجه داشته باشید که می‌توانید به‌صورت دستی با دستور "sendinpaths -n" بدون ارسال ایمیل و بدون حذف فایل‌های دامپ پردازش‌شده، یک گزارش تولید کنید. دستور مفید دیگر "sendinpaths -c" است تا رونوشتی از ایمیل ارسال‌شده توسط sendinpaths دریافت نمایید و بدین ترتیب از درست بودن همه چیز اطمینان حاصل کنید.

5.
پس از چند روز، بررسی کنید که آیا آمارهای روزانهٔ شما به‌درستی در http://top1000.anthologeek.net/ ظاهر می‌شوند یا خیر.

ذخیرهٔ دامپ‌ها در dumpfile. هر "%d" در dumpfile با زمان فعلی سیستم در هنگام ایجاد دامپ جایگزین خواهد شد. این گزینه باید همراه با -p استفاده شود. اگر dumpfile برابر با "-" باشد، از خروجی استاندارد استفاده می‌شود.

قالب این فایل‌های دامپ در زیر شرح داده شده است.

خواندن فیلدهای سرآیند Path از ورودی استاندارد.
تولید گزارش برای site. به‌طور کلی site باید مقدار pathhost از فایل inn.conf باشد.
خواندن داده‌ها از dumpfile. این گزینه می‌تواند برای خواندن داده‌ها از چندین فایل دامپ تکرار شود.
تنظیم سطح پرگویی (verbosity) گزارش. مقادیر معتبر برای level عبارتند از "0"، "1" و "2"، که "2" مقدار پیش‌فرض است.

قالب فایل‌های دامپ تولیدشده به شرح زیر است:

!!NINP <version> <start-time> <end-time> <nb-sites> <nb-articles>
    <average-time>
<site_0> <count_0> <site_1> <count_1> <site_2> <count_2> ...
!!NLREC
:<site_a>!<site_b>,<count_ab>:<site_c>!<site_d>,<count_cd> ...
!!NEND <nb-relations>

که در آن، زمان‌ها برچسب زمانی یونیکس هستند. سپس، رکوردهای nb-sites می‌آیند. هر رکورد با یک فاصله یا یک خط جدید جدا شده و شامل یک نام میزبان site_n و به دنبال آن تعداد دفعات مشاهده count_n است. تعداد فیلدهای سرآیند Path پردازش‌شده nb-articles است.

پس از آن، روابط nb-relations می‌آیند. در نسخه‌های 3.0.x، روابط با یک فاصله یا یک خط جدید جدا می‌شوند و نحو آن‌ها به‌صورت "site_a!site_b!count_ab" است که در آن site_a و site_b شماره‌های رکوردهای سایت هستند که از 0 آغاز می‌شوند.

در نسخه‌های 3.1.x، روابط با یک دونقطه آغاز می‌شوند و با هیچ چیز یا یک خط جدید جدا می‌شوند. نحو آن‌ها به‌صورت ":site_a!site_b,count_ab" با همان مفهوم نسخه‌های قبلی است. هنگامی که تعداد برابر با "1" باشد، می‌توان آن را حذف کرد. بیش از دو سایت را می‌توان در رابطه مشخص کرد (":site_a!site_b!site_c,count_abc").

برای نمونه:

!!NINP 3.1.1 1302944821 1302944838 5 2 1302944826
newsgate.cistron.nl 1 news.trigofacile.com 2 news.ecp.fr 2
    usenet.stanford.edu 1
bleachbot 1
!!NLREC
:3!2:2!1,2:4!0:0!2
!!NLEND 4

که در آن دو فیلد سرآیند Path پردازش‌شده عبارتند از:

Path: news.trigofacile.com!news.ecp.fr!usenet.stanford.edu
    !not-for-mail
Path: news.trigofacile.com!news.ecp.fr!newsgate.cistron.nl
    !bleachbot!not-for-mail

اگر INN شما پرچم فید "WP" را ندارد (نسخهٔ 1.5 ندارد، نسخه‌های 1.6 و 1.7 دارند، نسخه‌های 2.0 و جدیدتر همگی دارند)، از مدخل newsfeeds زیر استفاده کنید:

inpaths!:*:Tc,WH:<pathbin>/ginpaths

که در آن ginpaths اسکریپت زیر است:

#!/bin/sh
exec egrep '^Path: ' \
    | <pathbin>/ninpaths -p -d <pathlog>/path/inpaths.%d

که در آن <pathbin> و <pathlog> همانند بالا جایگزین می‌شوند.

این یک نسخهٔ اندکی اصلاح‌شده از برنامهٔ اصلی ninpaths متعلق به Olaf Titz است که در alt.sources ارسال شده بود و در بایگانی وب او به نشانی http://sites.inka.de/~bigred/sw/ نگهداری می‌شود.

ایده و برخی از جزئیات پیاده‌سازی ninpaths از برنامهٔ اصلی inpaths برگرفته شده است، اما بیشتر کد برای وضوح بیشتر بازنویسی شده است. این برنامه در مالکیت عمومی (public domain) قرار دارد.

newsfeeds(5)، sendinpaths(8).

2024-05-19 INN 2.7.4