.\" -*- 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 "NEWS.DAILY 8" .TH NEWS.DAILY 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)" news.daily \- اسکریپت نگهداری و پاکسازی روزانه سرور مقالات INN .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBnews.daily\fR [\fBdelayrm\fR] [\fBexpctl\fR=\fIpath\fR] [\fBexpdir\fR=\fIpath\fR] [\fBexpireover\fR] [\fBexpireoverflags\fR=\fIargs\fR] [\fBflags\fR=\fIargs\fR] [\fBlowmark\fR] [\fBmailto\fR=\fIaddress\fR] [\fBnoexpire\fR] [\fBnoexpireover\fR] [\fBnoexplog\fR] [\fBnologs\fR] [\fBnomail\fR] [\fBnoprocbatch\fR] [\fBnorenumber\fR] [\fBnorm\fR] [\fBnorotate\fR] [\fBnostat\fR] [\fBnotdaily\fR] [\fBpostexec\fR=\fIprogram\fR] [\fBprocbatchdir\fR=\fIpath\fR] [\fBtmpdir\fR=\fIpath\fR] [\fI/path/to/a/program\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBnews.daily\fR تعدادی از وظایف مهم مدیریتی یوزنت (Usenet) را انجام می‌دهد. این وظایف شامل موارد زیر است: .IP \(bu 2 تولید گزارش وضعیت با استفاده از \&\fBinnstat\fR؛ .IP \(bu 2 حذف مقالات و اخبار قدیمی (با استفاده از \&\fBexpirerm\fR در صورتی که کلیدواژه \&\fBdelayrm\fR مشخص شده باشد)؛ .IP \(bu 2 پاکسازی پایگاه داده خلاصه مقالات (overview) با \&\fBexpireover\fR (اگر کلیدواژه همنام آن مشخص شده باشد یا گزینه \&\fIenableoverview\fR در \&\fIinn.conf\fR برابر true باشد)؛ .IP \(bu 2 پردازش فایل‌های لاگ و چرخاندن فایل‌های لاگ بایگانی‌شده با \&\fBscanlogs\fR؛ .IP \(bu 2 پردازش فایل‌های رهاشده \&\fBinnfeed\fR با استفاده از \&\fBprocbatch\fR؛ .IP \(bu 2 پردازش پیام‌های ذخیره‌شده در صف (spooled) با اجرای \&\fBrnews\fR همراه با پرچم \&\fB\-U\fR؛ .IP \(bu 2 شماره‌گذاری مجدد فایل \&\fIactive\fR با استفاده از \&\fBctlinnd\fR؛ .IP \(bu 2 بازسازی فایل \&\fIhistory\fR با استفاده از \&\fBexpire\fR؛ .IP \(bu 2 حذف هرگونه فایل سوکت قدیمی موجود در دایرکتوری \&\fIpathrun\fR؛ .IP \(bu 2 جمع‌آوری تمام خروجی‌ها و ارسال آن‌ها از طریق ایمیل. .PP لطفاً توجه داشته باشید که این برنامه باید تحت حساب کاربری مدیر اخبار (معمولاً \&\f(CW\*(C`news\*(C'\fR) اجرا شود، نه کاربر ریشه (root). به‌طور پیش‌فرض، \&\fBnews.daily\fR تمام وظایف خود را انجام داده و خروجی را برای مدیر اخبار ایمیل می‌کند؛ کاربری که با گزینه \&\fB\-\-with\-news\-master\fR در زمان پیکربندی (configure) مشخص شده است (که به‌طور پیش‌فرض \&\f(CW\*(C`usenet\*(C'\fR است). شما همچنین می‌توانید این رفتار را با استفاده از کلیدواژه \&\fBmailto\fR تغییر دهید. .PP با تعیین کلیدواژه‌ها در خط فرمان، امکان تغییر وظایف اجراشده و همچنین تغییر آرگومان‌های ارسالی به expire(8) و expireover(8) وجود دارد. \&\fBnews.daily\fR باید روزی یک بار، معمولاً از طریق cron(8) اجرا شود. از آنجا که اجرای آن سرعت سرور را کاهش می‌دهد، باید در زمان‌های کم‌مصرف سرور، مانند نیمه‌شب اجرا گردد. به عنوان مثال، برای اجرای آن در ساعت ۳ بامداد، خط زیر را به فایل crontab کاربر news اضافه کنید: .PP .Vb 1 \& 0 3 * * * /news.daily expireover lowmark .Ve .PP اگر از هر یک از روش‌های ذخیره‌سازی غیر از CNFS استفاده می‌کنید، کلیدواژه \&\fBdelayrm\fR را به لیست گزینه‌های فوق برای \&\fBnews.daily\fR اضافه کنید. .PP این برنامه می‌تواند دفعات بیشتری نیز اجرا شود، اما چنین اجراهایی باید حداقل از کلیدواژه \&\fBnorotate\fR (یا شاید کلیدواژه \&\fBnotdaily\fR) استفاده کنند تا از پردازش و چرخاندن بیش از حد سریع فایل‌های لاگ جلوگیری شود. برنامه shlock(8) برای جلوگیری از اجراهای همزمان به کار گرفته می‌شود. .PP برنامه‌ای که با مسیر مشخص‌شده \&\fI/path/to/a/program\fR تعیین می‌شود، دقیقاً قبل از انجام هرگونه عملیات انقضا (expiration) اجرا می‌گردد. کاربرد معمول آن تعیین یک برنامه انقضای جایگزین و استفاده از کلیدواژه \&\fBnoexpire\fR است. می‌توان چندین برنامه را مشخص کرد؛ این برنامه‌ها به ترتیب فراخوانی خواهند شد. .SH "کلیدواژه‌ها (KEYWORDS)" .IX Header "KEYWORDS" کلیدواژه‌های زیر را می‌توان به کار برد: .IP \fBdelayrm\fR 4 .IX Item "delayrm" هنگام فراخوانی \&\fBexpire\fR و \&\fBexpireover\fR، از پرچم \&\fB\-z\fR استفاده می‌کند. نام مقالاتی که باید حذف شوند در یک فایل موقت نوشته شده و سپس پس از انقضا با فراخوانی \&\fBexpirerm\fR (که خود \&\fBfastrm\fR را فراخوانی می‌کند) تغییر نام داده می‌شوند. .IP \fBexpctl\fR=\fIpath\fR 4 .IX Item "expctl=path" فایلی را که باید به عنوان فایل \&\fIexpire.ctl\fR برای \&\fBexpire\fR استفاده شود مشخص می‌کند. .IP \fBexpdir\fR=\fIpath\fR 4 .IX Item "expdir=path" به‌طور پیش‌فرض، \&\fBexpire\fR فایل جدید \&\fIhistory\fR و پایگاه داده را در همان دایرکتوری فایل‌های فعلی می‌سازد. استفاده از این کلیدواژه مسیر متفاوتی را برای ساخت فایل‌های جدید تعیین می‌کند (با ارسال پرچم \&\fB\-d\fR به \&\fBexpire\fR) که پس از پایان کار به محل مناسب منتقل خواهند شد. .IP \fBexpireover\fR 4 .IX Item "expireover" برنامه \&\fBexpireover\fR پس از انقضا فراخوانی می‌شود تا پایگاه داده بررسی اجمالی (overview) را پاکسازی کند. اگر هیچ داده بررسی اجمالی ایجاد نشود، به کلیدواژه \&\fBexpireover\fR نیازی نیست. این حالت زمانی است که سرور فقط برای تغذیه‌کننده‌ها (feeders و بدون reader) کار می‌کند. به‌طور پیش‌فرض، \&\fBexpireover\fR توسط \&\fBnews.daily\fR فراخوانی نمی‌شود مگر اینکه \&\fIenableoverview\fR در \&\fIinn.conf\fR روی true تنظیم شده باشد. .IP \fBexpireoverflags\fR=\fIargs\fR 4 .IX Item "expireoverflags=args" در صورت استفاده از کلیدواژه \&\fBexpireover\fR، می‌توان از این کلیدواژه برای مشخص کردن پرچم‌هایی که باید به \&\fBexpireover\fR ارسال شوند استفاده کرد. اگر کلیدواژه \&\fBdelayrm\fR به کار رفته باشد، مقدار پیش‌فرض \&\fB\-z\fR و فهرست فایل‌های حذف‌شده است؛ در غیر این صورت، مقدار پیش‌فرض \&\fB\-s\fR خواهد بود. .IP \fBflags\fR=\fIargs\fR 4 .IX Item "flags=args" به‌طور پیش‌فرض، \&\fBexpire\fR با آرگومان \&\fB\-v1\fR فراخوانی می‌شود. استفاده از این کلیدواژه آرگومان‌ها را به موارد مشخص‌شده تغییر می‌دهد. در صورتی که به چندین آرگومان نیاز است، دقت کنید که از علامت نقل‌قول (کوتیشن) استفاده نمایید. در صورت استفاده از کلیدواژه \&\fBnoexpire\fR، این کلیدواژه هیچ اثری نخواهد داشت. .IP \fBlowmark\fR 4 .IX Item "lowmark" اگر کلیدواژه \&\fBlowmark\fR استفاده شود، برای شماره‌گذاری مجدد \&\fIactive\fR از دستور \&\f(CW\*(C`ctlinnd lowmark\*(C'\fR استفاده می‌شود. عملیات عادی \&\f(CW\*(C`ctlinnd renumber\*(C'\fR زمان زیادی می‌برد. با کلیدواژه \&\fBlowmark\fR، این عملیات زمان کمتری خواهد برد. در صورت استفاده از کلیدواژه \&\fBlowmark\fR، نیازی به کلیدواژه \&\fBnorenumber\fR نیست چرا که \&\fBnews.daily\fR آن را به‌طور ضمنی مشخص می‌کند. .Sp اگر کلیدواژه \&\fBlowmark\fR به \&\fBnews.daily\fR داده شود، کلیدواژه \&\fBexpireover\fR نیز باید حتماً داده شود؛ در غیر این صورت، این نوع شماره‌گذاری مجدد اعمال نخواهد شد. .IP \fBmailto\fR=\fIaddress\fR 4 .IX Item "mailto=address" به‌طور پیش‌فرض، \&\fBnews.daily\fR گزارش را به نشانی newsmaster که با \&\fB\-\-with\-news\-master\fR در زمان پیکربندی تعیین شده ایمیل می‌کند. با کلیدواژه \&\fBmailto\fR می‌توان نشانی متفاوتی را برای ارسال ایمیل گزارش مشخص کرد. توجه داشته باشید در صورتی که کلیدواژه \&\fBnomail\fR نیز مشخص شده باشد، استفاده از این کلیدواژه هیچ اثری ندارد. .IP \fBnoexpire\fR 4 .IX Item "noexpire" به‌طور پیش‌فرض، \&\fBexpire\fR برای حذف مقالات قدیمی اخبار فراخوانی می‌شود. استفاده از این کلیدواژه این عملکرد را غیرفعال می‌کند. .IP \fBnoexpireover\fR 4 .IX Item "noexpireover" به‌طور پیش‌فرض، اگر \&\fIenableoverview\fR در \&\fIinn.conf\fR تنظیم شده باشد، \&\fBexpireover\fR برای حذف پایگاه داده قدیمی overview فراخوانی می‌شود. استفاده از این کلیدواژه این عملکرد را غیرفعال می‌کند. .IP \fBnoexplog\fR 4 .IX Item "noexplog" برنامه \&\fBexpire\fR به‌طور معمول اطلاعات را به \&\fIpathlog\fR/expire.log اضافه می‌کند (ببینید: newslog(5)). استفاده از این کلیدواژه باعث می‌شود که خروجی \&\fBexpire\fR به عنوان بخشی از خروجی \&\fBnews.daily\fR مدیریت شود. اگر کلیدواژه \&\fBnoexpire\fR استفاده شده باشد، این کلیدواژه هیچ اثری نخواهد داشت. .IP \fBnologs\fR 4 .IX Item "nologs" پس از پایان انقضا، \&\fBscanlogs\fR برای پردازش فایل‌های لاگ فراخوانی می‌شود. استفاده از این کلیدواژه تمام عملکردهای پردازش لاگ را غیرفعال می‌کند. .IP \fBnomail\fR 4 .IX Item "nomail" به‌طور معمول \&\fBnews.daily\fR یک پیام ایمیل حاوی نتایج برای مدیر ارسال می‌کند. استفاده از این کلیدواژه باعث می‌شود که این پیام به جای ایمیل، به stdout و stderr ارسال شود. معمولاً خروجی‌های stdout و stderr تمام ابزارهای فراخوانی‌شده توسط اسکریپت به یک فایل هدایت می‌شوند. اگر این فایل خالی باشد، هیچ پیامی ارسال نمی‌شود. .IP \fBnoprocbatch\fR 4 .IX Item "noprocbatch" این کلیدواژه اجرای \&\fBprocbatch\fR روی فایل‌های رهاشده (dropped) \&\fBinnfeed\fR که در دایرکتوری spool آن تولید شده‌اند را غیرفعال می‌کند. این فایل‌ها شامل فهرستی از مقالاتی هستند که به درستی به همتایان (peers) ارسال نشده‌اند. به‌طور پیش‌فرض، این فایل‌ها پردازش شده و سپس حذف می‌شوند. .IP \fBnorenumber\fR 4 .IX Item "norenumber" این کلیدواژه عملیات \&\f(CW\*(C`ctlinnd renumber\*(C'\fR را غیرفعال می‌کند. به‌طور معمول، نشانه‌های حداقل (low water marks) برای تمامی گروه‌های خبری در فایل \&\fIactive\fR بازنشانی می‌شوند. .IP \fBnorm\fR 4 .IX Item "norm" به‌طور پیش‌فرض، هر سوکت \&\fBctlinnd\fR که به مدت دو روز تغییر نکرده باشد، حذف خواهد شد. استفاده از این کلیدواژه این عملکرد را غیرفعال می‌کند. .IP \fBnorotate\fR 4 .IX Item "norotate" به‌طور پیش‌فرض، پردازش لاگ شامل چرخاندن (دوران) و پاکسازی فایل‌های لاگ است. استفاده از این کلیدواژه جنبه چرخاندن و پاکسازی پردازش لاگ را غیرفعال می‌کند؛ فایل‌های لاگ فقط برای اطلاعات بررسی می‌شوند و هیچ محتوایی تغییر نمی‌کند. در صورت استفاده از کلیدواژه \&\fBnologs\fR، این کلیدواژه اثری ندارد. در صورت فراخوانی \&\fBscanlogs\fR، کلیدواژه \&\fBnorotate\fR به آن منتقل می‌شود. .IP \fBnostat\fR 4 .IX Item "nostat" این کلیدواژه گزارش وضعیت تولیدشده توسط \&\fBinnstat\fR را غیرفعال می‌کند. بدون این کلیدواژه، گزارش وضعیت نخستین عملکردی است که دقیقاً پیش از به دست آوردن قفل \&\fBnews.daily\fR انجام می‌شود. .IP \fBnotdaily\fR 4 .IX Item "notdaily" به‌طور پیش‌فرض، \&\fBnews.daily\fR انتظار دارد که تنها یک بار در روز اجرا شود، و کارهای مختلفی انجام می‌دهد (مانند چرخاندن لاگ‌ها) که معمولاً باید صرفاً به صورت روزانه انجام شوند. در هر بار اجرای اضافی \&\fBnews.daily\fR در طول روز، از این کلیدواژه استفاده کنید تا پردازش (و چرخاندن) عادی فایل‌های لاگ انجام نشود. این کلیدواژه متضمن \&\fBnologs\fR است. .IP \fBpostexec\fR=\fIprogram\fR 4 .IX Item "postexec=program" برنامه‌ای که با مسیر مشخص‌شده \&\fIprogram\fR تعیین شده است، دقیقاً پس از اتمام تمام فرآیندهای انقضا اجرا می‌شود. می‌توان چندین برنامه را مشخص کرد؛ این برنامه‌ها به ترتیب فراخوانی خواهند شد. .IP \fBprocbatchdir\fR=\fIpath\fR 4 .IX Item "procbatchdir=path" اسکریپت \&\fBnews.daily\fR تلاش می‌کند دایرکتوری backlog مربوط به \&\fBinnfeed\fR را در \&\fIinnfeed.conf\fR و \&\fIinnfeed\-delayed.conf\fR پیدا کند. در صورتی که چندین نمونه از \&\fBinnfeed\fR در حال اجرا باشند یا زمانی که فایل پیکربندی آن فایل پیش‌فرض نباشد، می‌توان از کلیدواژه \&\fBprocbatchdir\fR برای مشخص کردن مسیر دایرکتوری backlog استفاده کرد. از این کلیدواژه می‌توان بیش از یک بار در خط فرمان استفاده کرد که امکان تعیین چندین دایرکتوری backlog را فراهم می‌آورد. .IP \fBtmpdir\fR=\fIpath\fR 4 .IX Item "tmpdir=path" با تنظیم متغیر محیطی \&\f(CW\*(C`$TMPDIR\*(C'\fR روی مسیر مشخص‌شده، تنظیم \&\fIpathtmp\fR در \&\fIinn.conf\fR را بازنویسی (override) می‌کند. بخش‌های مختلف فرآیند expire، مانند sort، سپس از این مسیر به عنوان دایرکتوری فایل‌های موقت استفاده خواهند کرد. .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" اسکریپت \&\fBnews.daily\fR و این صفحه راهنما توسط Landon Curt Noll و Rich $alz برای InterNetNews نوشته شده است. این مستند توسط Julien Elie به POD تبدیل شد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" active(5), ctlinnd(8), expire(8), expire.ctl(5), expireover(8), expirerm(8), fastrm(1), inn.conf(5), innstat(8), newslog(5), procbatch(8), scanlogs(8), shlock(8).