.\" -*- 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 "SEND-IHAVE 8" .TH SEND-IHAVE 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)" send\-ihave \- ارسال پیام‌های کنترلی ihave به سایت‌های دوردست .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBsend-ihave\fR [\fB\-d\fR] \fIsitename\fR[\fB:\fR\fIhostname\fR] [\fIsitename\fR[\fB:\fR\fIhostname\fR] ...] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" استفاده از \fBsend-ihave\fR توصیه نمی‌شود؛ پیام‌های کنترلی ihave و sendme پیش‌درآمدی بر پروتکل NNTP را پیاده‌سازی می‌کنند و امروزه در اینترنت تا حد زیادی منسوخ شده‌اند، اما همچنان همراه با برخی پروتکل‌های انتقال نظیر UUCP کاربرد دارند. .PP در صورتی که واقعاً نیاز به استفاده از پیام‌های کنترلی ihave و sendme دارید و این دستورالعمل‌ها را برای راه‌اندازی آن‌ها دنبال می‌کنید، لطفاً نگه‌دارندگان INN را از هرگونه بهبود در مستندات که می‌توانست راه‌اندازی را آسان‌تر کند، به‌ویژه مراحل مفقود یا نامفهوم، مطلع سازید. .PP ایده بنیادین در پس پیام‌های کنترلی ihave و sendme این است که شما از طریق پیام‌های کنترلی ihave به همتایان UUCP خود اطلاع می‌دهید چه مقالاتی در دسترس دارید، و در پاسخ برای مقالاتی که می‌خواهید، یک پیام کنترلی sendme ارسال می‌کنید. .PP دستور \fBsend-ihave\fR فایل‌های دسته‌ای نوشته‌شده توسط \fBinnd\fR را پردازش می‌کند تا پیام‌های کنترلی ihave را به سایت‌های دوردست NNTP ارسال نماید. سایت‌هایی که باید تغذیه شوند با مشخص کردن جفت‌های \f(CW\*(C`sitename:hostname\*(C'\fR در خط فرمان تعیین می‌شوند. مقدار \fIsitename\fR برچسبی است که سایت در فایل \fInewsfeeds\fR دارد، بدون پسوند \f(CW\*(C`.ihave\*(C'\fR خود. مقدار \fIhostname\fR نام میزبان واقعی سایت دوردست است که یک FQDN (نام دامنه کاملاً واجد شرایط) می‌باشد. معمولاً \fIsitename\fR و \fIhostname\fR یکسان هستند و بنابراین نیازی نیست به صورت جفت‌های \f(CW\*(C`sitename:hostname\*(C'\fR مشخص شوند، بلکه صرفاً ذکر \f(CW\*(C`sitename\*(C'\fR کافی است. .PP دستور \fBsend-ihave\fR شناسه‌های مقالات (Message-IDs) را درون یک پیام کنترلی ihave کپسوله‌سازی می‌کند و با استفاده از \fBinews\fR آن پیام کنترلی را به شبه‌گروه خبری \f(CW\*(C`to.hostname\*(C'\fR می‌فرستد. .PP فایل دسته‌ای تولیدشده توسط \fBsend-ihave\fR برای یک سایت مشخص، در دایرکتوری \fIpathoutgoing\fR با نام \fIsitename.ihave\fR ذخیره می‌شود. برای جلوگیری از خرابی فایل دسته‌ای، از shlock(8) استفاده می‌شود تا اطمینان حاصل گردد این فایل‌ها توسط دو نمونه در حال اجرا به طور همزمان پردازش نمی‌شوند. .PP برای نمونه، جهت تولید پیام‌های کنترلی ihave برای \fInews.server.com\fR هنگام دریافت مقالات در سلسله‌مراتب comp.*، کافی است خط زیر را به فایل \fInewsfeeds\fR خود بیفزایید (و آن را مجدداً بارگذاری کنید): .PP .Vb 1 \& news.server.com.ihave:comp.*:Tf,Wm: .Ve .PP (توجه داشته باشید که اگر الگوی \f(CW\*(C`*\*(C'\fR را به \f(CW\*(C`news.server.com\*(C'\fR ارسال می‌کنید، باید \f(CW\*(C`@to,@to.*\*(C'\fR را به انتهای الگوی گروه خبری اضافه کنید تا پیام کنترلی ihave تولیدشده توسط \fBsend-ihave\fR خودش در فهرست مقالات یک پیام کنترلی ihave قرار نگیرد. همچنین ممکن است بخواهید این الگو را به انتهای هر ورودی پردازش‌کننده مقالات کنترلی، مانند \fBcontrolchan\fR، یا هر ورودی دیگری که الگوی \f(CW\*(C`*\*(C'\fR به آن داده می‌شود، بیفزایید.) .PP سپس، دستور زیر را به صورت دوره‌ای از طریق cron(8) اجرا نمایید: .PP .Vb 1 \& send\-ihave news.server.com .Ve .PP سپس \fBsend-ihave\fR یک مقاله کنترلی ihave شامل فهرستی از Message-IDها را به شبه‌گروه خبری \f(CW\*(C`to.news.server.com\*(C'\fR ارسال خواهد کرد. ممکن است چندین مقاله کنترلی ارسال شود که هر یک شامل حداکثر ۱۰۰۰ شناسه Message-ID است. .PP اطمینان حاصل کنید که شبه‌گروه خبری \f(CW\*(C`to.news.server.com\*(C'\fR روی کارساز شما وجود داشته باشد (یا شبه‌گروه خبری \f(CW\*(C`to\*(C'\fR در صورتی که \fImergetogroups\fR در \fIinn.conf\fR روی true تنظیم شده باشد)، و مقالات کنترلی ihave فیلتر نشوند (پیکربندی پیش‌فرض Cleanfeed آن‌ها را رد می‌کند). این مقالات کنترلی در شبه‌گروه خبری \f(CW\*(C`control\*(C'\fR (یا در صورت وجود، \f(CW\*(C`control.ihave\*(C'\fR)، یا در صورت تنظیم \fImergetogroups\fR روی true در \f(CW\*(C`to\*(C'\fR ذخیره خواهند شد. .PP اکنون باید آن‌ها را با هر روشی که مایلید به کارساز دوردست انتشار دهید. احتمالاً از قبل روشی را راه‌اندازی کرده‌اید، که در این صورت فقط کافی است گروه خبری \f(CW\*(C`to.news.server.com\*(C'\fR را به فهرست گروه‌هایی که باید تغذیه شوند اضافه کنید. (برای راه‌اندازی یک فید UUCP، نحوه کار send\-uucp(8) را ببینید.) .PP علاوه بر ارسال پیام‌های کنترلی ihave، کارساز اخبار شما نیاز به پردازش پیام‌های کنترلی sendme دارد که از همتایان دوردست دریافت می‌کند. شما باید یک ورودی \f(CW\*(C`sendme\*(C'\fR در \fIcontrol.ctl.local\fR با کنش \fBdoit\fR اضافه کنید تا امکان پردازش این پیام‌های منطبق با یک نشانی From مشخص فراهم شود. سپس \fBcontrolchan\fR یک فایل دسته‌ای با نام \fIpathname.work\fR در \fIpathoutgoing\fR ایجاد می‌کند که حاوی فهرستی از توکن‌های ذخیره‌سازی است (بسته به مقدار \fIlogipaddr\fR در \fIinn.conf\fR، مقدار \fIpathname\fR از بدنه فیلد سرایند Path یا نشانی IP همتای دوردست گرفته می‌شود). در نهایت، باید batcher(8) یا send\-uucp(8) را برای ارسال دسته‌های خبری به همتایان دوردست خود پیکربندی کنید. .PP به همین ترتیب، کارساز اخبار شما باید پیام‌های کنترلی ihave را که از همتایان دوردست دریافت می‌کند پردازش کند. این مرحله ساده‌ترین بخش کار است. کافی است یک ورودی \f(CW\*(C`ihave\*(C'\fR در \fIcontrol.ctl.local\fR مشابه ورودی‌ای که برای \f(CW\*(C`sendme\*(C'\fR افزودید اضافه کنید. سپس \fBcontrolchan\fR این پیام‌های کنترلی ihave را پردازش کرده و برای هر مقاله‌ای که در پیام کنترلی ihave وجود دارد اما در کارساز اخبار محلی شما موجود نیست، یک مقاله کنترلی sendme تولید می‌کند. این مقالات کنترلی sendme به شبه‌گروه خبری \f(CW\*(C`to.pathname\*(C'\fR ارسال می‌شوند و همان‌گونه که قبلاً شرح داده شد انتشار می‌یابند. (توجه داشته باشید که ممکن است لازم باشد دو گروه \f(CW\*(C`to\*(C'\fR مختلف ایجاد شوند، زیرا ممکن است \fIsitename\fR استفاده‌شده در \fInewsfeeds\fR با \fIpathname\fR یکسان نباشد.) .PP مراقب باشید که پیام‌های کنترلی ihave و sendme دارای امضای دیجیتال نیستند. شما باید محدودیت‌هایی را در مورد اینکه چه کسانی می‌توانند مقالاتی به گروه‌های \f(CW\*(C`to.*\*(C'\fR ارسال کنند (چه از طریق \fIreaders.conf\fR یا قواعد ویژه در قلاب‌های پالایشی (filter hooks)) و همچنین روی خطوط \f(CW\*(C`ihave\*(C'\fR و \f(CW\*(C`sendme\*(C'\fR در \fIcontrol.ctl.local\fR اعمال نمایید. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-d\fR 4 .IX Item "-d" فلگ \fB\-d\fR باعث می‌شود \fBsend-ihave\fR خروجی را به جای فایل گزارش \fIsend\-ihave.log\fR در \fIpathlog\fR، به خروجی استاندارد (stdout) ارسال کند. .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" بازنویسی در قالب POD توسط Julien Elie. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" batcher(8), controlchan(8), control.ctl(5), inews(1), newsfeeds(5), send\-uucp(8).