.\" -*- 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 "BATCHER 8" .TH BATCHER 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)" batcher \- ایجاد دسته‌های مقالات برای ارسال به سایت‌های راه دور .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBbatcher\fR [\fB\-rv\fR] [\fB\-a\fR \fIarticles\fR] [\fB\-A\fR \fItotal-articles\fR] [\fB\-b\fR \fIsize\fR] [\fB\-B\fR \fItotal-size\fR] [\fB\-i\fR \fIstring\fR] [\fB\-N\fR \fIbatches\fR] [\fB\-p\fR \fIprocess\fR] [\fB\-s\fR \fIseparator\fR] \&\fIhost\fR [\fIinput\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBbatcher\fR فهرستی از فایل‌ها را می‌خواند و دسته‌های خبری را برای میزبان (\fIhost\fR) مشخص‌شده آماده می‌سازد. این دستور معمولاً برای آماده‌سازی فیدهای UUCP استفاده می‌شود، اما دسته‌های حاصل می‌توانند توسط هر برنامه‌ای که از \&\fBrnews\fR(1) برای تزریق مقالات استفاده می‌کند، به کار گرفته شوند. این دستور معمولاً توسط اسکریپتی از درون cron فراخوانی می‌شود که از \&\fBshlock\fR برای قفل کردن میزبان استفاده می‌کند و به دنبال آن از \&\fBctlinnd\fR برای خالی کردن فایل دسته بهره می‌برد. برای رابط پیشین دستور \&\fBbatcher\fR به \&\fBsend\-uucp\fR(8) مراجعه کنید. .PP دستور \&\fBbatcher\fR فایل \&\fIinput\fR را می‌خواند، یا در صورت مشخص نشدن هیچ فایلی، از ورودی استاندارد می‌خواند. اگر \&\fIinput\fR یک نام فایل نسبی باشد، فرض می‌شود در \&\fIpathoutgoing\fR تنظیم‌شده در \&\fIinn.conf\fR قرار دارد. خطوط خالی و خطوطی که با علامت پوند (\f(CW\*(C`#\*(C'\fR) آغاز می‌شوند نادیده گرفته می‌شوند. تمام خطوط دیگر در ورودی باید از یک یا دو فیلد تشکیل شده باشند که با یک فاصله منفرد از هم جدا شده‌اند. فیلد اول توکن API ذخیره‌سازی یک مقاله است. فیلد دوم، در صورت وجود، اندازه مقاله را بر حسب بایت مشخص می‌کند. .PP به‌طور پیش‌فرض، دسته‌ها در خروجی استاندارد نوشته می‌شوند (که اگر بیش از یک دسته خروجی داده شود چندان کاربردی نیست)، اما گزینه \&\fB\-p\fR را ببینید. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP "\fB\-a\fR \fIarticles\fR" 4 .IX Item "-a articles" این فلگ تعداد مقالات گنجانده‌شده در هر دسته را محدود می‌کند. پیش‌فرض بدون محدودیت است. هنگامی که مجموع بایت‌ها یا تعداد مقالات نوشته‌شده از حدود تعیین‌شده فراتر رود، یک دسته جدید آغاز خواهد شد. .IP "\fB\-A\fR \fItotal-articles\fR" 4 .IX Item "-A total-articles" تعداد کل مقالات نوشته‌شده برای همه دسته‌ها را محدود می‌کند. به محض اینکه تعداد کل مقالات نوشته‌شده در دسته‌ها به \&\fItotal-articles\fR برسد یا از آن بیشتر شود، تمام مقالات بعدی در ورودی به تعویق خواهند افتاد. پیش‌فرض بدون محدودیت است. .IP "\fB\-b\fR \fIsize\fR" 4 .IX Item "-b size" این فلگ محدودیت اندازه هر دسته را تعیین می‌کند؛ به محض اینکه حداقل این مقدار داده نوشته شد، دسته جدیدی شروع خواهد شد. اندازه پیش‌فرض 60\ KB است. استفاده از \&\f(CW\*(C`\-b 0\*(C'\fR امکان نامحدود بودن اندازه دسته‌ها را فراهم می‌کند. .IP "\fB\-B\fR \fItotal-size\fR" 4 .IX Item "-B total-size" تعداد کل بایت‌های نوشته‌شده برای تمام دسته‌ها را محدود می‌کند. به محض اینکه مجموع بایت‌های نوشته‌شده در دسته‌ها به \&\fItotal-size\fR برسد یا از آن بیشتر شود، تمام مقالات بعدی در ورودی به تعویق خواهند افتاد. پیش‌فرض بدون محدودیت است. .IP "\fB\-i\fR \fIstring\fR" 4 .IX Item "-i string" یک دسته با یک خط شناسایی آغاز می‌شود تا روش بازگشایی که باید در مقصد استفاده شود را مشخص کند. هنگام استفاده از این فلگ، \&\fIstring\fR به همراه یک خط جدید در ابتدای هر دسته خروجی داده می‌شود. حالت پیش‌فرض این است که هیچ رشته اولیه‌ای وجود نداشته باشد (با این فرض که پردازشگر مشخص‌شده با فلگ \&\fB\-p\fR یا پردازشی دیگر در ادامه، خط مناسب را اضافه خواهد کرد). .IP "\fB\-N\fR \fIbatches\fR" 4 .IX Item "-N batches" تعداد کل دسته‌های نوشته‌شده را محدود می‌کند. به محض اینکه تعداد دسته‌های نوشته‌شده به \&\fIbatches\fR برسد یا از آن فراتر رود، تمام مقالات بعدی در ورودی به تعویق خواهند افتاد. پیش‌فرض بدون محدودیت است. .IP "\fB\-p\fR \fIprocess\fR" 4 .IX Item "-p process" به‌طور پیش‌فرض، دسته‌ها در خروجی استاندارد نوشته می‌شوند، که هنگام ایجاد بیش از یک دسته خروجی مفید نیست. در صورت مشخص شدن این گزینه، هر دسته از طریق یک لوله (pipe) به دستور پوسته \&\fIprocess\fR فرستاده می‌شود. آرگومان \&\fIprocess\fR باید یک رشته با قالب \&\fBsprintf\fR(3) باشد که می‌تواند دارای یک پارامتر \&\f(CW\*(C`%s\*(C'\fR باشد که با نام میزبان جایگزین خواهد شد. .Sp یک مقدار متداول عبارت است از: .Sp .Vb 1 \& ( echo \*(Aq#! gunbatch\*(Aq ; exec gzip \-c ) | uux \- \-r \-z %s!rnews .Ve .Sp که دسته‌های فشرده‌شده با gzip را ایجاد کرده و آن‌ها را به \&\fBuux\fR تحویل می‌دهد. .IP \fB\-r\fR 4 .IX Item "-r" به‌طور پیش‌فرض، \&\fBbatcher\fR خطاها را به \&\fIpathlog\fR/errlog گزارش می‌دهد. برای لغو این تغییر مسیر و گزارش خطاها به خروجی خطای استاندارد، از فلگ \&\fB\-r\fR استفاده کنید. .IP "\fB\-s\fR \fIseparator\fR" 4 .IX Item "-s separator" هر مقاله در یک دسته با یک خط جداکننده شروع می‌شود که اندازه مقاله را مشخص می‌کند. \&\fIseparator\fR باید یک رشته با قالب \&\fBsprintf\fR(3) باشد که می‌تواند شامل یک \&\f(CW\*(C`%ld\*(C'\fR در رشته باشد که با اندازه مقاله جایگزین خواهد شد. اگر جداکننده خالی نباشد، هنگام اضافه شدن به ابتدای هر مقاله، یک خط جدید نیز به آن پیوست می‌شود. .Sp جداکننده پیش‌فرض به این صورت است: .Sp .Vb 1 \& #! rnews %ld .Ve .Sp و این مقدار به‌ندرت باید تغییر کند. .IP \fB\-v\fR 4 .IX Item "-v" هنگام خروج، \&\fBbatcher\fR آمار را از طریق syslog گزارش می‌دهد. با این فلگ، آمار در خروجی استاندارد نیز چاپ خواهد شد. .SH "کد خروج (EXIT STATUS)" .IX Header "EXIT STATUS" اگر ورودی به پایان برسد و تمام دسته‌ها با موفقیت ایجاد شوند، \&\fBbatcher\fR با وضعیت صفر خارج خواهد شد. .PP اگر هر یک از محدودیت‌های تعیین‌شده با فلگ‌های \&\fB\-A\fR، \&\fB\-B\fR یا \&\fB\-N\fR حاصل شود، یا اگر خطایی در نوشتن یک دسته رخ دهد، \&\fBbatcher\fR تلاش می‌کند تا ورودی باقی‌مانده را با کپی کردن در یک فایل به شرح زیر ذخیره کند: .IP \(bu 2 اگر نام فایل ورودی مشخص نشده باشد، ورودی باقی‌مانده در \&\fIpathoutgoing\fR/\fIhost\fR کپی خواهد شد. .IP \(bu 2 اگر نام فایل ورودی داده شده باشد، ورودی باقی‌مانده در یک فایل موقت که با اضافه کردن \&\f(CW\*(C`.bch\*(C'\fR به انتهای \&\fIinput\fR نام‌گذاری شده (و در صورتی که \&\fIinput\fR یک مسیر کامل نباشد، با افزودن \&\fIpathoutgoing\fR تکمیل شده است) کپی خواهد شد. در صورت موفقیت‌آمیز بودن این کار، \&\fBbatcher\fR سپس تلاش می‌کند نام این فایل موقت را به \&\fIinput\fR تغییر دهد (بنابراین \&\fIinput\fR را با رونوشتی از خودش که تمام خطوط مقالات با موفقیت دسته‌بندی‌شده از آن حذف شده‌اند، جایگزین می‌کند). .PP با دریافت سیگنال وقفه یا خاتمه، \&\fBbatcher\fR دسته‌بندی مقاله جاری را به پایان می‌رساند، دسته را می‌بندد و سپس فایل دسته را همان‌طور که در بالا شرح داده شد بازنویسی می‌کند. .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" نوشته‌شده توسط Rich $alz برای InterNetNews. بازنویسی‌شده توسط Russ Allbery در POD. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBctlinnd\fR(8)، \&\fBinn.conf\fR(5)، \&\fBnewsfeeds\fR(5)، \&\fBrnews\fR(1)، \&\fBsend\-uucp\fR(8)، \&\fBshlock\fR(8).