| SEND-UUCP(8) | InterNetNews Documentation | SEND-UUCP(8) |
نام (NAME)
send-uucp - ارسال مقالههای یوزنت از طریق UUCP
خلاصه دستور (SYNOPSIS)
send-uucp [site ...]
توضیحات (DESCRIPTION)
برنامهٔ send-uucp فایلهای دستهای (batch files) ایجادشده توسط innd(8) را برای ارسال مقالههای یوزنت (Usenet) به سایتهای UUCP پردازش میکند. این برنامه یک فایل پیکربندی را برای کنترل نحوهٔ رفتار خود با سایتهای مختلف میخواند. معمولاً این برنامه بهطور دورهای از طریق cron اجرا میشود تا دستهها را کنار هم قرار داده و آنها را به سایتهای راهدور UUCP ارسال کند.
این برنامه کاهش مصرف پهنای باند و ارسال خبر به سایتهای راهدور UUCP را که نمیتوانند خوراک بیدرنگ (real-time feed) دریافت کنند (برای نمونه در صورتی که روی اتصالات Dial-up باشند) امکانپذیر میسازد.
گزینهها (OPTIONS)
هرگونه آرگومان ارائهشده به برنامه به عنوان فهرستی از سایتهای مشخصشده در send-uucp.cf تفسیر میشود که باید برای آنها دستهها تولید شوند. اگر هیچ آرگومانی ارائه نشود، دستهها برای تمام سایتهای فهرستشده در آن فایل پیکربندی تولید خواهند شد.
پیکربندی (CONFIGURATION)
سایتهایی که مقالهها باید به آنها ارسال شوند باید در فایل پیکربندی send-uucp.cf واقع در pathetc (همانطور که در inn.conf تنظیم شده است) پیکربندی شوند. هر سایت با خطی به شکل زیر مشخص میشود:
site[:host[:funnel]] [compressor [maxsize [batchtime]]]
- site
- نام سایت خبری در حال پیکربندی. این نام باید با یک نام سایت از newsfeeds(5) مطابقت داشته باشد.
- host
- نام میزبان UUCP که دستهها باید برای این سایت به آن ارسال شوند. در صورت حذف، از نام سایت خبری به عنوان نام میزبان UUCP استفاده خواهد شد.
- funnel
- در مورد سایتی که به عنوان قیف (funnel) پیکربندی شده است، send-uucp باید کانال (یا exploder) مورد استفاده به عنوان مقصد قیف را تخلیه (flush) کند، به جای اینکه خود سایت را تخلیه نماید. این روش به send-uucp نام کانال یا exploder مورد نظر برای تخلیهٔ این سایت را اعلام میکند. در صورت عدم تعیین، بهطور پیشفرض سایت تخلیه میشود.
- compressor
- روش فشردهسازی مورد استفاده برای دستهها. این روش باید یکی از "bzip2"، "compress"، "gzip" یا "none" باشد. آرگومانهای دستور فشردهسازی را میتوان با استفاده از "_" به جای فاصلهها مشخص کرد. برای مثال، "gzip_-9". مقدار پیشفرض "gzip" است.
- maxsize
- حداکثر اندازهٔ یک دستهٔ منفرد به بایت پیش از فشردهسازی. مقدار پیشفرض "500000" بایت است.
- batchtime
- فهرستی از ساعتهای جداشده با کاما که در طول آنها باید برای یک سایت معین دسته تولید شود. هنگامی که send-uucp اجرا میشود، یک سایت تنها در صورتی پردازش خواهد شد که ساعت فعلی با یکی از ساعتهای موجود در batchtime مطابقت داشته باشد. پیشفرض بدون محدودیت در زمان تولید دستهها است.
فیلدها با فاصله از یکدیگر جدا میشوند و فقط نام سایت باید مشخص شود، و برای مقادیر مشخصنشده از مقادیر پیشفرض استفاده میشود. اگر اولین نویسه در یک خط علامت هش ("#") باشد، باقی خط نادیده گرفته میشود.
مثال (EXAMPLE)
در اینجا یک نمونه برای فایل پیکربندی send-uucp.cf آورده شده است:
zoetermeer gzip 1048576 5,18,22 hoofddorp gzip 1048576 5,18,22 pa3ebv gzip 1048576 5,18,22 drinkel bzip2 1048576 5,6,18,20,22,0,2 manhole compress 1048576 5,18,22 owl compress 1048576 able pern::MYFUNNEL!
این پیکربندی هشت سایت UUCP را تعریف میکند. سه سایت اول و دو سایت آخر از فشردهسازی "gzip" استفاده میکنند، سایت چهارم ("drinkel") از "bzip2" و سایتهای باقیمانده ("manhole" و "owl") از "compress" استفاده میکنند. شش سایت اول از اندازهٔ دستهٔ ۱ مگابایت (1 MB) استفاده میکنند و دو سایت آخر ("able" و "pern") از مقدار پیشفرض ۵۰۰٬۰۰۰ بایت استفاده میکنند. برای سایتهای "zoetermeer"، "hoofddorp"، "pa3ebv" و "manhole" تنها در طول ساعتهای 05:00، 18:00 و 22:00 دسته تولید خواهد شد، و برای سایت "drinkel" تنها در طول آن ساعتها بههمراه 06:00، 20:00، 00:00 و 02:00 دسته تولید خواهد شد. هیچ محدودیتی در زمان تولید دستهها برای "owl"، "able" و "pern" وجود ندارد.
سایت "pern" به عنوان قیف به داخل "MYFUNNEL!" پیکربندی شده است. send-uucp به جای "ctlinnd flush pern" دستور "ctlinnd flush MYFUNNEL!" را صادر خواهد کرد.
در رابطه با فایل newsfeeds، پرچمهای متداول مورد استفاده برای خوراک UUCP عبارتند از "Tf,Wnb". در اینجا یک مدخل نمونه برای "zoetermeer" آورده شده است، که در آن دستهبندی بین 4 KB و 1 KB نگه داشته میشود:
zoetermeer\
:*,!junk,!control,!control.*/!foo\
:Tf,Wnb,B4096/1024:
راهاندازی خوراکهای UUCP (SETTING UP UUCP FEEDS)
در اینجا مراحلی که باید برای راهاندازی یک خوراک UUCP بر بستر SSH بین دو کارگزار خبر دنبال کنید آورده شده است، با استفاده از پیادهسازی UUCP موجود در دبیان به صورت بستهٔ "uucp". سازوکارهای شرحدادهشده در زیر را در صورت استفاده از پیادهسازی دیگری از UUCP باید تطبیق دهید. (و اگر چنین کردید، لطفاً به نگهدارندگان INN دربارهٔ نحوهٔ راهاندازی خوراک با سایر پیادهسازیهای UUCP اطلاع دهید تا بتوان آن را به این مستندات افزود.)
- 1.
- قبل از هر چیز، مطمئن شوید که rnews به درستی با بیت setuid برای "news"، مالکیت گروه "uucp" و با مجوز دسترسی (mode) "4550" نصب شده باشد. این کار به زیرسیستم UUCP اجازه میدهد تا rnews را برای پردازش دستههای UUCP از مقالههای خبری اجرا کند. پرچم --enable-uucp-rnews در اسکریپت "configure" هنگام نصب INN این کار را انجام میدهد. در غیر این صورت، باید مجوزهای دسترسی روی rnews را به صورت دستی تغییر دهید.
- 2.
- بستهٔ "uucp" را نصب کنید. این بسته بهویژه uucico(8) و uux(1) را فراهم خواهد کرد.
- 3.
- کارگزارهای
خبر
راهدور را
برای سرکشی
(poll) و
ساعتهایی
را که در
طول آنها
باید سرکشی
شوند در /etc/uucp/Poll
پیکربندی
کنید. برای
نمونه، اگر
دستههای UUCP
را هر ۴
ساعت
یکبار به
"news.server.to.feed"
ارسال
میکنید،
میتوانید
از
پیکربندی
زیر
استفاده
کنید:
schedule news.server.to.feed 00 poll news.server.to.feed 00 04 08 12 16 20
اگر ارسال به صورت ساعتی است، فقط تمام ساعتها را فهرست کنید.
- 4.
- اعتبارنامهها
(نامهای
کاربری و
گذرواژهها)
را برای
استفاده
هنگام
احراز هویت
در برابر
کارگزارهای
خبر
راهدور در
/etc/uucp/call، به
ازای هر خط
یک مورد،
پیکربندی
کنید. برای
نمونه:
news.server.to.feed login password
- 5.
- نام UUCP
کارگزار
خبر محلی را
در /etc/uucp/config
پیکربندی
کنید. برای
نمونه:
nodename my.news.server
- 6.
- بررسی کنید که /etc/uucp/expire از نظر تعداد روزهای نگهداری دستهها و همچنین پیکربندی گزارشهای روزانه با نیازهای شما مطابقت داشته باشد. مقادیر پیشفرض معمولاً مناسب هستند، هرچند ممکن است بخواهید گزارش روزانه را تنها در صورت وقوع رخدادهای غیرعادی دریافت کنید (و در این حالت، کافی است "$important_only" را روی "1" تنظیم نمایید).
- 7.
- اعتبارنامههایی
(نامهای
کاربری و
گذرواژههای
جداشده با
کلید Tab) را که
کارگزارهای
خبر
راهدور
هنگام
احراز هویت
در برابر
کارگزار
خبر محلی
استفاده
میکنند در
/etc/uucp/passwd، به
ازای هر خط
یک مورد،
پیکربندی
کنید. برای
نمونه:
login<TAB>password
- 8.
- نحوهٔ
اتصال
کارگزارهای
خبر
راهدور به
کارگزار
خبر محلی را
در /etc/uucp/sys
پیکربندی
کنید. یک
مدخل
متداول
برای
برقراری
اتصال SSH
مدخل زیر
است که در
آن pathbin باید
به مسیر
واقعی rnews
تغییر یابد:
system news.server.to.feed call-login * call-password * commands <pathbin>/rnews time any chat "" \d\d\r\c ogin: \d\L word: \P chat-timeout 120 protocol i port ssh.news.server.to.feed
- 9.
- نحوهٔ
اتصال به
کارگزارهای
خبر
راهدور را
در /etc/uucp/port
پیکربندی
کنید. یک
مدخل
متداول
برای
برقراری
اتصال SSH با
استفاده از
کلید خصوصی
عبارت است
از:
port ssh.news.server.to.feed type pipe command /bin/ssh -a -x -q -i <key> -l uucp news.server.to.feed reliable true protocol etyig
که در آن key مسیر کلید خصوصی مورد استفاده برای اتصال SSH است، مانند /var/spool/uucp/.ssh/id_private_key.
- 10.
- اطمینان حاصل کنید که مدیران کارگزارهای خبر راهدور، کلید عمومی مربوط به id_private_key را برای اتصالات به کاربر "uucp" در کارگزارهای خبر راهدور اضافه کرده باشند.
- 11.
- با فرض
اینکه
دایرکتوری
خانگی
کاربر
"uucp" مسیر
/var/spool/uucp باشد،
باید
کلیدهای SSH
را در
زیردایرکتوری
.ssh
پیکربندی
کنید. ابتدا
کلیدهای
عمومی تمام
کارگزارهای
خبر
راهدور را
در authorized_keys
اضافه
نمایید. یک
مدخل
متداول به
صورت زیر
است که باید
در ۱ خط
باشد (در
اینجا برای
نمایش
مناسب در
صفحهٔ man
شکسته شده
است):
no-port-forwarding,no-X11-forwarding,no-agent-forwarding, command="/usr/sbin/uucico -l",from="news.server.to.feed" ssh-rsa xxxyyyzzz uucp@news.server.to.feed
این کار تضمین میکند که از اتصال SSH برای هدفی غیر از تبادل دستههای UUCP استفاده نخواهد شد.
- 12.
- اطمینان حاصل کنید که id_private_key، همانطور که در /etc/uucp/port تنظیم شده است، به درستی وجود داشته باشد و تنها توسط کاربر "uucp" قابل خواندن باشد.
- 13.
- دستور
تنظیمشده
در /etc/uucp/port را به
صورت دستی
با کاربر
"uucp" اجرا
کنید تا
فایل known_hosts
ایجاد شود و
از صحت
تنظیمات SSH
اطمینان
حاصل گردد.
/bin/ssh -a -x -q -i <key> -l uucp news.server.to.feed
- 14.
- خوراک
ارسالی به
کارگزارهای
راهدور را
پارامتربندی
کنید. یک
مدخل
متداول در
newsfeeds برای
تولید
دستهها در
pathoutgoing عبارت
است از:
news.server.to.feed/pathname:*:Tf,Wnb,B4096/1024:
- 15.
- روش
فشردهسازی،
اندازهٔ
دستهها و
زمان تولید
آنها را در
فایل send-uucp.cf
واقع در pathetc،
همانطور
که پیشتر
در این
مستندات
شرح داده
شد، تنظیم
نمایید.
news.server.to.feed bzip2 1048576 3,7,11,15,19,23
- 16.
- بررسی کنید
که send-uucp به
صورت ساعتی
در crontab توسط
کاربر
"news" اجرا
شود. برای
نمونه در
/etc/cron.d/inn2:
52 * * * * news <pathbin>/send-uucp
تنظیم زمان راهاندازی متفاوتی نسبت به کارگزارهای راهدورتان میتواند مفید باشد. برای نمونه، اگر شما دستهها را هر ساعت در دقیقهٔ ۵۲ تولید کنید، یک همتای راهدور ممکن است همین کار را در دقیقهٔ ۲۲ انجام دهد. به این ترتیب، بسته به اینکه هر کدام چه زمانی متصل شوید، میتوانید مقالهها را با بسامد بیشتری تبادل کنید.
- 17.
- بررسی کنید
که
برنامههای
UUCP بهطور
خودکار در crontab
اجرا شوند
(معمولاً
uudemon.hr بهصورت
ساعتی در
/etc/cron.d/uucp برای
سرکشی
کارگزارهای
خبر
راهدور و
uudemon.day
بهصورت
روزانه در
/etc/cron.daily/uucp
فراخوانی
میشوند).
همانند send-uucp، زمان اجرا را تنظیم کنید تا تعداد و تازگی دستهها برای تبادل به بیشترین مقدار برسد.
- 18.
- گزارشها
را در /var/log/uucp
بررسی کنید
تا از
عملکرد
درست
همهچیز،
چه سرکشی و
چه ارسال،
اطمینان
حاصل
نمایید.
خواهید دید که send-uucp دستههای rnews با نامهایی مانند D.0I8Y را آماده میکند که توسط uux در صف قرار میگیرند. هنگامی که پس از آن uucico از طریق cron برای انتقال این دستهها اجرا میشود، uucico دستههای موجود را بهطور همزمان از سایتهای راهدور دریافت میکند. این دستههای دریافتشده سپس توسط uuxqt که rnews را برای تزریق آنها فراخوانی میکند، پردازش میشوند.
همین!
فایلها (FILES)
- pathbin/send-uucp
- خود اسکریپت پرل (Perl) که برای ایجاد دستههای خبری از فایلهای خروجی استفاده میشود.
- pathetc/send-uucp.cf
- فایل پیکربندی که فهرستی از سایتهای مورد نظر برای پردازش را مشخص میکند.
- pathlog/send-uucp.log
- فایل گزارش که در صورت در دسترس نبودن سرویس syslog استفاده میشود.
تاریخچه (HISTORY)
این برنامه در ابتدا توسط Edvard Tuinder <ed@elm.net> نوشته شد و سپس توسط Miquel van Smoorenburg <miquels@cistron.nl> نگهداری و گسترش یافت. Marco d'Itri <md@linux.it> کد را برای گنجاندن در INN پاکسازی کرد. این صفحهٔ راهنما در ابتدا توسط Mark Brown <broonie@sirena.org.uk> نوشته شد و روند دقیق راهاندازی خوراک UUCP توسط Julien Élie اضافه گردید.
همچنین ببینید (SEE ALSO)
innd(8), newsfeeds(5), uucp(8).
| 2025-03-29 | INN 2.7.4 |