.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "INNFEED 8" .TH INNFEED 8 2025-05-09 "INN 2.7.4" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" innfeed, imapfeed \- تغذیه‌کننده جریانی چندمیزبانه و چنداتصاله NNTP .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBinnfeed\fR [\fB\-ChmMvxyz\fR] [\fB\-a\fR \fIspool-dir\fR] [\fB\-b\fR \fIdirectory\fR] [\fB\-c\fR \fIconfig-file\fR] [\fB\-d\fR \fIlog-level\fR] [\fB\-e\fR \fIbytes\fR] [\fB\-l\fR \fIlogfile\fR] [\fB\-o\fR \fIbytes\fR] [\fB\-p\fR \fIpid-file\fR] [\fB\-s\fR \fIcommand\fR] [\fB\-S\fR \fIstatus-file\fR] [\fIfile\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" برنامه \&\fBinnfeed\fR پروتکل NNTP را برای انتقال اخبار بین رایانه‌ها پیاده‌سازی می‌کند. این برنامه پروتکل استاندارد IHAVE و همچنین افزونه جریانی CHECK/TAKETHIS را مدیریت می‌کند. \&\fBinnfeed\fR می‌تواند هم‌زمان هر تعداد میزبان دوردست را تغذیه کند و در صورت پیکربندی، چندین اتصال به هر میزبان باز خواهد کرد. تنها محدودیت‌ها، محدودیت‌های فرایند برای توصیف‌کننده‌های پرونده باز (file descriptors) و حافظه هستند. .PP به‌عنوان جایگزینی برای استفاده از NNTP، امکان ارسال خوراک اخبار INN به یک سرور IMAP نیز وجود دارد. این کار با استفاده از یک فایل اجرایی به نام \&\fBimapfeed\fR انجام می‌شود که به جز در فرایند تحویل، کاملاً مشابه \&\fBinnfeed\fR است. نسخه جدید دارای دو نوع اتصال است: یک اتصال LMTP برای تحویل پیام‌های معمولی و یک اتصال IMAP برای مدیریت پیام‌های کنترلی. .PP در صورت استفاده به همراه delayer(8)، برنامه \&\fBinnfeed\fR می‌تواند یک خوراک با تاخیر به همتایان دوردست یا به یک نمونه محلی دیگر از \&\fBinnd\fR ارسال کند، به‌ویژه برای اینکه امکان رد هرزنامه‌ها قبل از رسیدن واقعی آن‌ها فراهم شود. .SH "حالت‌ها (MODES)" .IX Header "MODES" برنامه \&\fBinnfeed\fR سه حالت عملیاتی دارد: کانال (channel)، فایل قیفی (funnel-file) و دسته‌ای (batch). .PP حالت کانال زمانی استفاده می‌شود که هیچ نام فایلی در خط فرمان مشخص نشده باشد، کلیدواژه \&\fIinput-file\fR در فایل پیکربندی داده \&\fIنشده\fR باشد، \&\fIو\fR گزینه \&\fB\-x\fR نیز داده \&\fIنشده\fR باشد. در حالت کانال، \&\fBinnfeed\fR به‌گونه‌ای اجرا می‌شود که ورودی استاندارد (stdin) آن از طریق یک لوله (pipe) به \&\fBinnd\fR متصل است. هر زمان که \&\fBinnd\fR این لوله را ببندد (که در حین پردازش عادی به دلایل متعددی این کار را انجام می‌دهد)، \&\fBinnfeed\fR خارج خواهد شد. این برنامه ابتدا سعی می‌کند پیش از صدور دستور QUIT، ارسال تمام مقالاتی را که در میانه انتقال آن‌ها بوده است به پایان برساند. این بدان معناست که بسته به کندی همتایان شما، خروج \&\fBinnfeed\fR ممکن است کمی طول بکشد. این برنامه هرگز (یا بهتر بگوییم، تقریباً هرگز) اتصال را به صورت ناگهانی قطع نمی‌کند. بنابراین روش توصیه‌شده برای راه‌اندازی مجدد \&\fBinnfeed\fR در صورت اجرا در حالت کانال این است که به \&\fBinnd\fR بگویید لوله را ببندد و یک فرایند جدید \&\fBinnfeed\fR ایجاد کند. این کار را می‌توان با دستور \&\f(CW\*(C`ctlinnd flush \fR\f(CIfeed\fR\f(CW\*(C'\fR انجام داد که در آن \&\fIfeed\fR نام خوراک کانال \&\fBinnfeed\fR در فایل \&\fInewsfeeds\fR است. .PP حالت فایل قیفی (funnel-file) زمانی استفاده می‌شود که یک نام فایل به‌عنوان آرگومان داده شود یا کلیدواژه \&\fIinput-file\fR در فایل پیکربندی قید شده باشد. در حالت فایل قیفی، فایل مشخص‌شده را برای اطلاعاتی با همان قالب‌بندی که \&\fBinnd\fR در حالت کانال ارائه می‌داد می‌خواند. انتظار می‌رود که \&\fBinnd\fR به طور مداوم در این فایل بنویسد، بنابراین وقتی \&\fBinnfeed\fR به انتهای فایل می‌رسد، به صورت دوره‌ای اطلاعات جدید را بررسی می‌کند. برای جلوگیری از رشد بی‌رویه فایل قیفی، باید به صورت دوره‌ای فایل را کنار بگذارید (یا به سادگی آن را حذف کنید) و از \&\fBinnd\fR بخواهید فایل را فلاش (flush) کند. سپس، پس از اینکه فایل توسط \&\fBinnd\fR فلاش شد، می‌توانید یک سیگنال SIGALRM به \&\fBinnfeed\fR ارسال کنید، و آن نیز فایل را بسته و فایل جدید ایجادشده توسط \&\fBinnd\fR را باز خواهد کرد. چیزی شبیه به: .PP .Vb 7 \& innfeed \-p /innfeed.pid my\-funnel\-file & \& while true; do \& sleep 43200 \& rm \-f my\-funnel\-file \& ctlinnd flush funnel\-file\-site \& kill \-ALRM \`cat /innfeed.pid\` \& done .Ve .PP حالت دسته‌ای زمانی استفاده می‌شود که گزینه \&\fB\-x\fR به کار رود. در حالت دسته‌ای، \&\fBinnfeed\fR ورودی استاندارد را نادیده می‌گیرد و صرفاً فایل‌های معوق (backlog) ایجادشده توسط یک \&\fBinnfeed\fR در حال اجرای قبلی را پردازش می‌کند. این حالت معمولاً مورد نیاز نیست زیرا \&\fBinnfeed\fR خودش پردازش فایل‌های معوق را بر عهده خواهد گرفت. .SH "پیکربندی (CONFIGURATION)" .IX Header "CONFIGURATION" برنامه \&\fBinnfeed\fR برای اجرای درست به چند مورد نیاز دارد: یک دایرکتوری که بتواند فایل‌های معوق (backlog) را در آن ذخیره کند، و یک فایل پیکربندی برای توصیف اینکه کدام همتایان را باید مدیریت کند. .PP فایل پیکربندی در innfeed.conf(5) شرح داده شده است. از گزینه \&\fB\-c\fR می‌توان برای تعیین فایلی متفاوت، و از \&\fB\-b\fR برای تعیین دایرکتوری متفاوتی برای فایل‌های معوق استفاده کرد. کلیدهای \&\fIbacklog\-*\fR در فایل پیکربندی رفتار نگهداری کارهای معوق را مشخص می‌کنند. برای هر همتا (مثلاً \&\f(CW\*(C`foo\*(C'\fR)، برنامه \&\fBinnfeed\fR تا ۴ فایل را در دایرکتوری معوق مدیریت می‌کند: .IP \(bu 2 یک فایل \&\fIfoo.lock\fR که مانع تداخل سایر نمونه‌های \&\fBinnfeed\fR با این نمونه می‌شود. .IP \(bu 2 یک فایل \&\fIfoo.input\fR که حاوی اطلاعات مقاله‌های قدیمی است که \&\fBinnfeed\fR برای پردازش مجدد در حال خواندن آن‌ها است. .IP \(bu 2 یک فایل \&\fIfoo.output\fR که در آن \&\fBinnfeed\fR اطلاعات مربوط به مقالاتی را که امکان پردازش آن‌ها وجود نداشته است (معمولاً به دلیل کندی یا مسدود بودن یک همتا) می‌نویسد. هر \&\fIbacklog-rotate-period\fR ثانیه یک‌بار، \&\fBinnfeed\fR بررسی می‌کند که آیا خالی نیست، و اگر هیچ فایل \&\fIfoo\fR وجود نداشته باشد و \&\fIfoo.input\fR خالی باشد، نام \&\fIfoo.output\fR را به \&\fIfoo.input\fR تغییر می‌دهد و شروع به خواندن از آن می‌کند. .IP \(bu 2 یک فایل \&\fIfoo\fR که هرگز توسط \&\fBinnfeed\fR ساخته نمی‌شود، اما اگر \&\fBinnfeed\fR هنگام بررسی در هر \&\fIbacklog-newfile-period\fR ثانیه متوجه حضور آن شود، در اولین فرصت (هر \&\fIbacklog-rotate-period\fR ثانیه در صورتی که \&\fIfoo.input\fR خالی باشد) نام آن را به \&\fIfoo.input\fR تغییر می‌دهد و شروع به خواندن از آن می‌کند. این به شما امکان می‌دهد یک فایل دسته‌ای بسازید و آن را در جایی قرار دهید که \&\fBinnfeed\fR آن را پیدا کند. .PP هرگز نباید فایل‌های \&\fIfoo.input\fR یا \&\fIfoo.output\fR یک فرایند \&\fBinnfeed\fR در حال اجرا را دستکاری کنید. ساختار این سه فایل آخر یکی از موارد زیر است: .PP .Vb 2 \& /path/to/article \& @token@ .Ve .PP این دقیقاً مشابه دو فیلد اول خطوطی است که \&\fBinnd\fR به \&\fBinnfeed\fR تحویل می‌دهد، و مشابه دو فیلد اول خطوط فایل دسته‌ای است که اگر \&\fBinnfeed\fR به هر دلیلی در دسترس نباشد، \&\fBinnd\fR آن را می‌نویسد. هنگامی که \&\fBinnfeed\fR فایل‌های دسته‌ای خود را پردازش می‌کند، هر چیزی را پس از دو فیلد اول که با فاصله جدا شده‌اند نادیده می‌گیرد؛ بنابراین انتقال فایل دسته‌ای ایجادشده توسط \&\fBinnd\fR به مکان مناسب کار خواهد کرد، حتی اگر خطوط دارای فیلدهای اضافی باشند. .PP فیلد اول می‌تواند یک شناسه رابط ذخیره‌سازی (storage API token) نیز باشد. این دو نوع خط می‌توانند در هم آمیخته باشند؛ \&\fBinnfeed\fR در صورت لزوم از مدیر ذخیره‌سازی استفاده خواهد کرد، و در غیر این صورت فیلد اول را به‌عنوان نام فایلی برای خواندن مستقیم در نظر می‌گیرد. .PP برنامه \&\fBinnfeed\fR وضعیت فعلی خود را در فایل \&\fIinnfeed.status\fR (یا فایلی که با گزینه \&\fB\-S\fR مشخص شده) می‌نویسد. این فایل حاوی جزئیاتی در مورد کل فرایند و هر همتایی است که این نمونه از \&\fBinnfeed\fR مدیریت می‌کند. .PP اگر به \&\fBinnfeed\fR دستور داده شود مقاله‌ای را به میزبانی که مدیریت نمی‌کند ارسال کند، اطلاعات مقاله در فایلی مطابق با الگوی \&\fIinnfeed\-dropped.*\fR قرار می‌گیرد که بخشی از نام فایل با شناسه فرایند (PID) مربوط به فرایند \&\fBinnfeed\fR که در آن می‌نویسد مطابقت دارد. \&\fBinnfeed\fR این فایل را به جز برای نوشتن در آن پردازش نخواهد کرد. اگر چیزی در فایل نوشته نشود، در صورت خروج عادی \&\fBinnfeed\fR حذف خواهد شد. در غیر این صورت، فایل باقی می‌ماند و پس از آن می‌توان \&\fBprocbatch\fR را برای پردازش آن فراخوانی کرد. .SH "سیگنال‌ها (SIGNALS)" .IX Header "SIGNALS" به محض دریافت یک سیگنال SIGALRM، \&\fBinnfeed\fR فایل قیفی مشخص‌شده در خط فرمان را می‌بندد و مجدداً آن را باز می‌کند (توضیحات فایل قیفی در بالا را ببینید). .PP برنامه \&\fBinnfeed\fR سیگنال SIGINT را دریافت کرده و یک تصویر لحظه‌ای (snapshot) بزرگ برای اشکال‌زدایی از وضعیت سیستم در حال اجرا را در فایلی به نام \&\fIinnfeed.snapshot\fR در \&\fIpathlog\fR می‌نویسد. .PP برنامه \&\fBinnfeed\fR سیگنال SIGHUP را دریافت کرده و هم فایل پیکربندی و هم فایل‌های گزارش را دوباره بارگیری می‌کند. برای جزئیات بیشتر به innfeed.conf(5) مراجعه کنید. .PP برنامه \&\fBinnfeed\fR سیگنال SIGCHLD را دریافت کرده و تمام فایل‌های معوق را بسته و مجدداً باز می‌کند. .PP برنامه \&\fBinnfeed\fR سیگنال SIGTERM را دریافت کرده و یک خاموش‌سازی منظم را انجام می‌دهد. .PP به محض دریافت SIGUSR1، \&\fBinnfeed\fR سطح اشکال‌زدایی را یک واحد افزایش می‌دهد؛ دریافت SIGUSR2 آن را یک واحد کاهش می‌دهد. سطح اشکال‌زدایی از صفر شروع می‌شود (مگر اینکه از گزینه \&\fB\-d\fR استفاده شده باشد)، که در این صورت هیچ اطلاعات اشکال‌زدایی ارسال نمی‌شود. مقادیر بزرگتر برای این سطح به معنای اطلاعات اشکال‌زدایی بیشتر است. مقادیر تا ۵ در حال حاضر مفید هستند. .SH "ورودی‌های گزارش سیستم (SYSLOG ENTRIES)" .IX Header "SYSLOG ENTRIES" سه دسته مختلف از ورودی‌های syslog برای آمارها وجود دارد: میزبان (host)، اتصال (connection) و سراسری (global). .PP آمارهای میزبان برای یک همتای معین در فواصل زمانی منظم پس از برقراری اولین اتصال (یا در صورت غیرقابل دسترس بودن میزبان دوردست، پس از شروع ذخیره‌سازی در صف اسپول) تولید می‌شوند. آمارهای میزبان مقادیر مجموع را در تمام اتصالاتی که طی بازه زمانی مشخص‌شده فعال بوده‌اند نشان می‌دهند. برای مثال (که در اینجا برای تناسب با صفحه شکسته شده و \&\f(CW\*(C`vixie\*(C'\fR همتای مورد نظر است): .PP .Vb 5 \& May 23 12:49:08 news innfeed[16015]: vixie checkpoint \& seconds 1381 offered 2744 accepted 1286 refused 1021 \& rejected 437 missing 0 accsize 8506220 rejsize 142129 \& spooled 990 on_close 0 unspooled 240 deferred 10/15.3 \& requeued 25 queue 42.1/100:14,35,13,4,24,10 .Ve .PP معانی این فیلدها عبارتند از: .IP seconds 2 .IX Item "seconds" زمان سپری‌شده از زمانی که \&\fBinnfeed\fR به میزبان متصل شده یا از زمانی که آمارها توسط یک ورودی گزارش \&\f(CW\*(C`final\*(C'\fR بازنشانی شده‌اند. .IP offered 2 .IX Item "offered" تعداد دستورات IHAVE ارسال‌شده به میزبان، در صورتی که در حالت جریانی (streaming) نباشد. یا مجموع تعداد دستورات TAKETHIS ارسال‌شده در زمان فعال بودن حالت no-CHECK به علاوه تعداد دستورات CHECK ارسال‌شده در حالت جریانی (زمانی که حالت no-CHECK فعال نیست). .IP accepted 2 .IX Item "accepted" تعداد مقالاتی که به میزبان دوردست ارسال شده و توسط آن پذیرفته شده‌اند. .IP refused 2 .IX Item "refused" تعداد مقالاتی که به میزبان پیشنهاد شده و میزبان اعلام کرده که آن‌ها را نمی‌خواهد زیرا شناسه پیام (message-ID) را قبلاً دیده است. میزبان دوردست این موضوع را با ارسال پاسخ ۴۳۵ به دستور IHAVE یا پاسخ ۴۳۸ به دستور CHECK مشخص می‌کند. .IP rejected 2 .IX Item "rejected" تعداد مقالاتی که به میزبان منتقل شده‌اند اما آن را نپذیرفته است، زیرا تشخیص داده که یا قبلاً مقاله را داشته است یا به دلیل فیلدهای سرایند Newsgroups یا Distribution مقاله و غیره آن را نمی‌خواهد. میزبان دوردست رد کردن مقاله را با ارسال پاسخ ۴۳۷ یا ۴۳۹ پس از اینکه \&\fBinnfeed\fR تمام مقاله را ارسال کرد، مشخص می‌کند. .IP missing 2 .IX Item "missing" تعداد مقالاتی که به \&\fBinnfeed\fR گفته شده بود به میزبان پیشنهاد دهد اما در اسپول مقالات موجود نبودند. این مقالات احتمالاً پیش از اینکه \&\fBinnfeed\fR بتواند آن‌ها را به میزبان عرضه کند، لغو شده یا منقضی شده بودند. .IP accsize 2 .IX Item "accsize" تعداد بایت‌های تمام مقالات پذیرفته‌شده که به میزبان منتقل شده‌اند. .IP rejsize 2 .IX Item "rejsize" تعداد بایت‌های تمام مقالات ردشده که به میزبان منتقل شده‌اند. .IP spooled 2 .IX Item "spooled" تعداد ورودی‌های مقالاتی که در فایل معوق \&\fI.output\fR نوشته شده‌اند، زیرا مقالات یا امکان ارسال به میزبان را نداشتند یا توسط آن رد شده بودند. مقالات عموماً به این دلیل در صف اسپول قرار می‌گیرند که مقالات جدید سریع‌تر از آن‌چه بتوان به میزبان عرضه کرد می‌رسند، یا به این دلیل که \&\fBinnfeed\fR تمام اتصالات به میزبان را بسته و تمام مقالاتی را که در آن زمان در حال پردازش بودند به فایل معوق \&\fI.output\fR هدایت کرده است. .IP on_close 2 .IX Item "on_close" تعداد مقالاتی که در زمان بسته شدن تمام اتصالات به میزبان توسط \&\fBinnfeed\fR به صف اسپول فرستاده شدند. .IP unspooled 2 .IX Item "unspooled" تعداد ورودی‌های مقالاتی که از فایل معوق \&\fI.input\fR خوانده شده‌اند. .IP deferred 2 .IX Item "deferred" عدد اول تعداد مقالاتی است که میزبان با ارسال پاسخ ۴۳۱ یا ۴۳۶ به \&\fBinnfeed\fR اعلام کرده که بعداً دوباره امتحان کند. \&\fBinnfeed\fR بلافاصله این مقالات را به انتهای صف برمی‌گرداند. .Sp عدد دوم میانگین اندازه مقالات به تعویق‌افتاده در طول بازه زمانی گزارش‌گیری قبلی است. .IP requeued 2 .IX Item "requeued" تعداد مقالاتی که روی اتصالات در حال انجام بودند اما \&\fBinnfeed\fR آن اتصالات را قطع کرد و مقالات را دوباره در صف قرار داد. این اتصالات ممکن است به دلیل یک مشکل شبکه‌ای قطع شده باشند یا بی‌پاسخ مانده باشند که باعث شده \&\fBinnfeed\fR مهلت زمانی (timeout) آن‌ها را پایان دهد. .IP queue 2 .IX Item "queue" عدد اول میانگین اندازه صف در طول بازه زمانی گزارش‌گیری قبلی است. عدد دوم حداکثر اندازه مجاز صف است. عدد سوم درصد زمانی است که صف خالی بوده است. اعداد چهارم تا هفتم درصد زمانی است که صف بین >۰٪ تا ۲۵٪ پر، ۲۵٪ تا ۵۰٪ پر، ۵۰٪ تا ۷۵٪ پر، و ۷۵٪ تا <۱۰۰٪ پر بوده است. عدد آخر درصد زمانی است که صف کاملاً پر بوده است. .PP اگر از گزینه \&\fB\-z\fR استفاده شود (پایین را ببینید)، هنگام ایجاد آمارهای همتا، هر اتصال نیز آمارهای خود را ثبت خواهد کرد. برای مثال، برای اتصال شماره صفر (از یک مجموعه پنج‌تایی): .PP .Vb 3 \& May 23 12:49:08 news innfeed[16015]: vixie:0 checkpoint \& seconds 1381 offered 596 accepted 274 refused 225 \& rejected 97 accsize 773623 rejsize 86591 .Ve .PP اگر فقط حداکثر یک اتصال به یک سرور دوردست باز کنید، ارتباط نزدیکی بین شماره‌های اتصال و شماره‌های میزبان وجود خواهد داشت، اما به طور کلی نمی‌توانید این دو مجموعه اعداد را به روشی آسان یا چندان معنادار به یکدیگر پیوند دهید. وقتی یک اتصال بسته می‌شود، همیشه آمارهای خود را ثبت می‌کند. .PP اگر همه اتصالات برای یک میزبان با هم بسته شوند، آن میزبان آمارهای خود را به عنوان \&\f(CW\*(C`final\*(C'\fR ثبت کرده و شمارنده‌های خود را بازنشانی می‌کند. اگر خوراک آن‌قدر شلوغ باشد که همیشه حداقل یک اتصال باز و در حال اجرا وجود داشته باشد، پس از گذشت مدتی (که از طریق فایل پیکربندی تنظیم می‌شود)، آمارهای میزبان به‌عنوان نهایی (final) ثبت شده و بازنشانی می‌شوند. این کار برای آسان‌تر کردن تولید آمارهای سطح بالاتر از فایل‌های لاگ توسط سایر برنامه‌ها است. .PP یک ورودی لاگ وجود دارد که دقیقاً پس از بسته شدن آخرین اتصال یک میزبان و هنگامی که \&\fBinnfeed\fR در حال آماده شدن برای خروج است، برای آن ارسال می‌شود. این ورودی حاوی شمارش‌ها در طول کل عمر فرایند است. فیلد \&\f(CW\*(C`seconds\*(C'\fR از اولین باری است که یک اتصال با موفقیت برقرار شد، یا اولین باری که ذخیره در صف اسپول شروع شد. اگر یک میزبان کاملاً بیکار بوده باشد، چنین ورودی گزارشی نخواهد داشت. .PP .Vb 3 \& May 23 12:49:08 news innfeed[16015]: decwrl global \& seconds 1381 offered 34 accepted 22 refused 3 rejected 7 \& missing 0 accsize 81277 rejsize 12738 spooled 0 unspooled 0 .Ve .PP آخرین ورودی لاگ بلافاصله پیش از خروج ارسال می‌شود. این ورودی حاوی خلاصه‌ای از آمارها در طول کل عمر فرایند است. .PP .Vb 4 \& Feb 13 14:43:41 news innfeed[22344]: ME global \& seconds 15742 offered 273441 accepted 45750 refused 222008 \& rejected 3334 missing 217 accsize 93647166 rejsize 7421839 \& spooled 10 unspooled 0 .Ve .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" برنامه \&\fBinnfeed\fR گزینه‌های زیر را می‌پذیرد. .IP "\fB\-a\fR \fIspool-dir\fR" 4 .IX Item "-a spool-dir" فلگ \&\fB\-a\fR برای تعیین شاخه اصلی درخت اسپول مقالات استفاده می‌شود. \&\fBinnfeed\fR یک chdir(2) به این دایرکتوری انجام می‌دهد، بنابراین احتمالاً باید یک مسیر مطلق باشد. مقدار پیش‌فرض \&\fIpatharticles\fR است که در \&\fIinn.conf\fR تنظیم شده است. .IP "\fB\-b\fR \fIdirectory\fR" 4 .IX Item "-b directory" فلگ \&\fB\-b\fR ممکن است برای تعیین دایرکتوری متفاوتی برای ذخیره و بازیابی فایل‌های معوق (backlog)، و همچنین برای فایل‌های قفل استفاده شود. اگر مسیر نسبی باشد، نسبت به \&\fIpathspool\fR تنظیم‌شده در \&\fIinn.conf\fR سنجیده می‌شود. پیش‌فرض \&\f(CW\*(C`innfeed\*(C'\fR است. .Sp توصیه می‌شود از پارامتر \&\fIbacklog-directory\fR در فایل پیکربندی برای تعریف یک دایرکتوری مشخص استفاده کنید، زیرا در غیر این صورت \&\fBnews.daily\fR آن را دریافت نخواهد کرد و برخی از عملیات نگهداری روی دایرکتوری معوق انجام نخواهد شد. .IP "\fB\-c\fR \fIconfig-file\fR" 4 .IX Item "-c config-file" فلگ \&\fB\-c\fR می‌تواند برای تعیین یک فایل پیکربندی متفاوت از مقدار پیش‌فرض استفاده شود. اگر مسیر نسبی باشد، نسبت به \&\fIpathetc\fR تنظیم‌شده در \&\fIinn.conf\fR در نظر گرفته می‌شود. مقدار پیش‌فرض \&\fIinnfeed.conf\fR است. .Sp توجه داشته باشید که اگر از نامی غیر از نام پیش‌فرض استفاده کنید و تنظیمات پیش‌فرض \&\fIlog-file\fR یا \&\fIpid-file\fR را نیز در فایل پیکربندی تغییر دهید، \&\fBscanlogs\fR نمی‌تواند فایل‌های لاگ اشکال‌زدایی را چرخش دهد (نام‌های آن‌ها در \&\fIinnfeed.conf\fR و \&\fIinnfeed\-delayed.conf\fR جستجو می‌شود). همچنین سایر عملیات نگهداری انجام‌شده توسط \&\fBnews.daily\fR نیز در صورتی که \&\fIbacklog-directory\fR از حالت پیش‌فرض خود در یک فایل پیکربندی با نام متفاوت تغییر داده شود، انجام نخواهند شد. .IP \fB\-C\fR 4 .IX Item "-C" فلگ \&\fB\-C\fR برای این استفاده می‌شود که \&\fBinnfeed\fR صرفاً فایل پیکربندی را بررسی کند، خطاها را گزارش دهد و سپس خارج شود. .IP "\fB\-d\fR \fIlog-level\fR" 4 .IX Item "-d log-level" فلگ \&\fB\-d\fR می‌تواند برای تعیین سطح گزارش‌گیری اولیه استفاده شود. تمام پیام‌های اشکال‌زدایی به خروجی خطای استاندارد (stderr) ارسال می‌شوند (که ممکن است مورد نظر شما نباشد، فلگ \&\fB\-l\fR در زیر را ببینید). .IP "\fB\-e\fR \fIbytes\fR" 4 .IX Item "-e bytes" فلگ \&\fB\-e\fR می‌تواند برای تعیین محدودیت اندازه (به بایت) برای فایل‌های معوق \&\fI.output\fR که \&\fBinnfeed\fR ایجاد می‌کند استفاده شود. اگر حجم فایل خروجی بیش از ۱۰٪ بزرگتر از مقدار داده‌شده شود، \&\fBinnfeed\fR فایل خروجی را با بخش انتهایی نسخه اصلی جایگزین می‌کند. مقدار پیش‌فرض \&\f(CW\*(C`0\*(C'\fR است که به معنای عدم وجود محدودیت است. .IP \fB\-h\fR 4 .IX Item "-h" برای چاپ پیام راهنمای نحوه استفاده، از فلگ \&\fB\-h\fR استفاده کنید. .IP "\fB\-l\fR \fIlogfile\fR" 4 .IX Item "-l logfile" فلگ \&\fB\-l\fR می‌تواند برای تعیین یک فایل لاگ به جای stderr استفاده شود. از آنجا که \&\fBinnd\fR برنامه \&\fBinnfeed\fR را با اتصال stderr به \&\fI/dev/null\fR راه‌اندازی می‌کند، استفاده از این گزینه می‌تواند در ثبت پیام‌های خطای غیرعادی یا پیام‌های اشکال‌زدایی مفید باشد (تمام پیام‌های خطای «عادی» به syslog ارسال می‌شوند). .Sp پیشنهاد می‌شود از پارامتر \&\fIlog-file\fR در فایل پیکربندی برای تعریف یک نام فایل مشخص استفاده کنید، زیرا در غیر این صورت \&\fBscanlogs\fR آن را دریافت نمی‌کند و چرخش فایل گزارش انجام نمی‌شود. .IP \fB\-m\fR 4 .IX Item "-m" فلگ \&\fB\-m\fR برای فعال کردن ثبت گزارش تمام مقالات مفقود استفاده می‌شود. به طور معمول، اگر مقاله‌ای مفقود باشد، \&\fBinnfeed\fR تعداد آن را نگه می‌دارد اما اطلاعات بیشتری ثبت نمی‌کند. وقتی از این فلگ استفاده می‌شود، جزئیات مربوط به شناسه‌های پیام و نام مسیرهای مورد انتظار گزارش می‌شوند. .IP \fB\-M\fR 4 .IX Item "-M" اگر \&\fBinnfeed\fR با پشتیبانی از mmap کامپایل شده باشد، فلگ \&\fB\-M\fR استفاده از mmap() را خاموش می‌کند؛ در غیر این صورت، هیچ تأثیری ندارد. .IP "\fB\-o\fR \fIbytes\fR" 4 .IX Item "-o bytes" فلگ \&\fB\-o\fR مقداری را برای حداکثر تعداد بایت داده‌های مقاله‌ای که \&\fBinnfeed\fR قرار است در حافظه نگه دارد تعیین می‌کند. این قابلیت هنوز به درستی کار نمی‌کند. .IP "\fB\-p\fR \fIpid-file\fR" 4 .IX Item "-p pid-file" فلگ \&\fB\-p\fR برای تعیین نام فایلی که شناسه فرایند (PID) در آن نوشته می‌شود به کار می‌رود. مسیر نسبی نسبت به \&\fIpathrun\fR تنظیم‌شده در \&\fIinn.conf\fR در نظر گرفته می‌شود. پیش‌فرض \&\fIinnfeed.pid\fR است. .Sp پیشنهاد می‌شود از پارامتر \&\fIpid-file\fR در فایل پیکربندی برای تعریف یک نام فایل مشخص استفاده کنید، زیرا در غیر این صورت \&\fBscanlogs\fR آن را پیدا نمی‌کند و فایل لاگ قبل از چرخش به درستی فلاش نمی‌شود. .IP "\fB\-s\fR \fIcommand\fR" 4 .IX Item "-s command" فلگ \&\fB\-s\fR نام دستوری را مشخص می‌کند که باید در یک زیرفرایند اجرا شود و اطلاعات مقاله از آن خوانده شود. این مشابه عملکرد حالت کانال است، با این تفاوت که \&\fIcommand\fR جایگاهی را که معمولاً توسط \&\fBinnd\fR اشغال می‌شود می‌گیرد. .IP "\fB\-S\fR \fIstatus-file\fR" 4 .IX Item "-S status-file" فلگ \&\fB\-S\fR نام فایلی را مشخص می‌کند که وضعیت دوره‌ای در آن نوشته می‌شود. اگر مسیر نسبی باشد، نسبت به \&\fIpathlog\fR تنظیم‌شده در \&\fIinn.conf\fR سنجیده می‌شود. پیش‌فرض \&\fIinnfeed.status\fR است. .IP \fB\-v\fR 4 .IX Item "-v" وقتی فلگ \&\fB\-v\fR داده شود، اطلاعات نسخه در خروجی خطای استاندارد (stderr) چاپ شده و سپس \&\fBinnfeed\fR خارج می‌شود. .IP \fB\-x\fR 4 .IX Item "-x" فلگ \&\fB\-x\fR برای این به کار می‌رود که به \&\fBinnfeed\fR اعلام کند هیچ اطلاعات مقاله‌ای از \&\fBinnd\fR انتظار نداشته باشد، بلکه فقط هر فایل معوق موجود را پردازش کرده و سپس خارج شود. .IP \fB\-y\fR 4 .IX Item "-y" فلگ \&\fB\-y\fR برای اجازه دادن به اتصال پویا به همتایان استفاده می‌شود. اگر از این فلگ استفاده شود و اطلاعات مقاله‌ای از \&\fBinnd\fR دریافت گردد که یک همتای ناشناخته را مشخص می‌کند، نام همتا به عنوان نام IP نیز در نظر گرفته شده و یک ارتباط با آن ایجاد می‌شود. با استفاده از این قابلیت، می‌توان فقط پیش‌فرض‌های سراسری را در فایل \&\fIinnfeed.conf\fR قرار داد، به شرطی که نام همتای مورد استفاده توسط \&\fBinnd\fR همان نام IP باشد. .Sp توجه داشته باشید که استفاده از \&\fBinnfeed\fR با گزینه \&\fB\-y\fR و بدون همتا در \&\fIinnfeed.conf\fR باعث بروز مشکلی می‌شود که در آن \&\fBinnfeed\fR اولین مقاله را نادیده می‌گیرد و حذف می‌کند. .IP \fB\-z\fR 4 .IX Item "-z" فلگ \&\fB\-z\fR برای این استفاده می‌شود که در یک پیکربندی فید موازی، هر اتصال زمانی که کنترل‌کننده اتصالات آمارهای خود را چاپ می‌کند، آمارهای خود را گزارش دهد. .SH "اشکالات (BUGS)" .IX Header "BUGS" هنگام استفاده از گزینه \&\fB\-x\fR، فیلد \&\fIinitial-connections\fR مدخل فایل پیکربندی، بدون توجه به بزرگی فایل دسته‌ای و بدون توجه به مقدار مشخص‌شده در فیلد \&\fImax-connections\fR، تعداد کل اتصالات ایجادشده و استفاده‌شده خواهد بود. بنابراین مقدار \&\f(CW\*(C`0\*(C'\fR برای \&\fIinitial-connections\fR به این معنی است که در حالت \&\fB\-x\fR هیچ اتفاقی نخواهد افتاد. .PP برنامه \&\fBinnfeed\fR به طور خودکار فایل را از \&\fIpathoutgoing\fR برنمی‌دارد. این کار باید با روش‌های خارجی برای آن آماده شود. .PP احتمالاً اشکالات بسیار بیشتری برای شمارش وجود دارد. .SH "گزینه جایگزین (ALTERNATIVE)" .IX Header "ALTERNATIVE" یک جایگزین برای \&\fBinnfeed\fR می‌تواند \&\fBinnduct\fR باشد که توسط Ian Jackson نگهداری می‌شود و در نشانی در دسترس است. هدف آن حل یک مشکل طراحی در شیوه کار \&\fBinnfeed\fR است. در واقع، پروتکل فید برنامه که میان \&\fBinnd\fR و \&\fBinnfeed\fR ردوبدل می‌شود همراه با اتلاف است (lossy): اگر \&\fBinnfeed\fR به طور غیرمنتظره‌ای متوقف شود، مقالاتی که \&\fBinnd\fR در لوله به سمت \&\fBinnfeed\fR نوشته است نادیده گرفته خواهند شد. \&\fBinnd\fR هیچ راهی برای تشخیص اینکه آن مقالات کدام بوده‌اند ندارد، هیچ سابقه مفیدی ثبت نمی‌کند و هیچ تلاشی برای ارسال مجدد این مقالات انجام نمی‌دهد. .SH "فایل‌ها (FILES)" .IX Header "FILES" .IP \fIpathbin\fR/innfeed 4 .IX Item "pathbin/innfeed" خودِ برنامه باینری. .IP \fIpathetc\fR/innfeed.conf 4 .IX Item "pathetc/innfeed.conf" فایل پیکربندی. .IP \fIpathspool\fR/innfeed 4 .IX Item "pathspool/innfeed" دایرکتوری فایل‌های معوق (backlog). .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" نوشته‌شده توسط James Brister برای InterNetNews. تبدیل به POD توسط Julien Elie. .PP نسخه‌های قبلی \&\fBinnfeed\fR (تا نسخه 0.10.1) به صورت جداگانه عرضه می‌شدند؛ اکنون \&\fBinnfeed\fR بخشی از INN است و از همان شماره نسخه استفاده می‌کند. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" ctlinnd(8), delayer(8), inn.conf(5), innfeed.conf(5), innd(8), procbatch(8).