.\" -*- 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 "EXPIRE 8" .TH EXPIRE 8 2026-06-12 "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)" expire \- منقضی کردن و حذف مقالات قدیمی در INN .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBexpire\fR [\fB\-iNnptx\fR] [\fB\-d\fR \fIdir\fR] [\fB\-f\fR \fIfile\fR] [\fB\-g\fR \fIfile\fR] [\fB\-h\fR \fIfile\fR] [\fB\-r\fR \fIreason\fR] [\fB\-s\fR \fIsize\fR] [\fB\-v\fR \fIlevel\fR] [\fB\-w\fR \fInumber\fR] [\fB\-z\fR \fIfile\fR] [\fIexpire.ctl\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBexpire\fR فایل متنی در قالب .BR history (5) را در مسیر \fIpathdb\fR/history پیمایش کرده و از اطلاعات ثبت‌شده در آن برای پاک‌سازی مقالات قدیمی اخبار استفاده می‌کند. رفتار آن به مقدار تنظیم‌شده برای \fIgroupbaseexpiry\fR در \fIinn.conf\fR بستگی دارد. .PP هنگامی که \fIgroupbaseexpiry\fR برابر با false باشد، منقضی کردن مقالات عمدتاً توسط \&\fBexpire\fR و بر اساس قوانین انقضا در \fIexpire.ctl\fR انجام می‌شود که با کلاس ذخیره‌سازی (storage class) هر مقاله مطابقت دارد. مقالات و ورودی‌های تاریخچه توسط \&\fBexpire\fR حذف می‌شوند و سپس \&\fBexpireover\fR پاک‌سازی تکمیلی برای حذف ورودی‌های پایگاه‌داده چکیده (overview database) را انجام می‌دهد. ورودی‌های تاریخچه مقالات منقضی‌شده تنها در صورتی حذف می‌شوند که سن آن‌ها بیشتر از تعداد روزهای مشخص‌شده در خط \&\f(CW\*(C`/remember/\*(C'\fR در \fIexpire.ctl\fR باشد. مقالاتی که با استفاده از روش‌های ذخیره‌سازی دارای قابلیت انقضای خودکار مانند CNFS ذخیره شده‌اند، به‌طور پیش‌فرض تحت تأثیر رفتار اصلی \&\fBexpire\fR قرار نمی‌گیرند (اما برای غیرفعال کردن این حالت، به گزینه .B \-N مراجعه کنید). .PP هنگامی که \fIgroupbaseexpiry\fR برابر با true باشد، منقضی کردن مقالات عمدتاً توسط \&\fBexpireover\fR و بر اساس قوانین انقضا در \fIexpire.ctl\fR که با هر گروه خبری مطابقت دارد انجام می‌شود. مقالات توسط \&\fBexpireover\fR از مخزن مقالات خبری (news spool) حذف می‌شوند و سپس \&\fBexpire\fR پاک‌سازی‌های تکمیلی را برای حذف ورودی‌های قدیمی پایگاه‌داده تاریخچه انجام می‌دهد. .PP برای مقالات در روش‌های ذخیره‌سازی با انقضای خودکار هنگامی که \fIgroupbaseexpiry\fR در \fIinn.conf\fR برابر با false تنظیم شده باشد و گزینه .B \-N داده نشده باشد، یا برای \fIتمام\fR مقالات هنگامی که \fIgroupbaseexpiry\fR برابر با true تنظیم شده باشد، \fIexpire.ctl\fR به‌جز خط \&\f(CW\*(C`/remember/\*(C'\fR نادیده گرفته می‌شود؛ در این حالت \&\fBexpire\fR تنها بررسی می‌کند که آیا مقاله هنوز وجود دارد یا خیر، و در صورت نیاز، ورودی‌های مربوط به آن در تاریخچه را پاک‌سازی می‌کند. .PP صرف‌نظر از تنظیم \fIgroupbaseexpiry\fR ، برنامه \&\fBexpireover\fR باید همراه با \&\fBexpire\fR اجرا شود، که معمولاً از طریق \&\fBnews.daily\fR توسط cron صورت می‌گیرد. .PP توجه داشته باشید که \&\fBexpire\fR هرگز مقالاتی را که با هیچ ورودی در \fIexpire.ctl\fR تطابق ندارند پاک‌سازی نمی‌کند. .PP همچنین توجه داشته باشید که اگر \fIgroupbaseexpiry\fR برابر با true باشد، کارساز برای منقضی کردن مقالات در بخش‌های ذخیره‌سازی پشتیبان که دارای قابلیت انقضای خودکار نیستند، به یک پایگاه‌داده چکیده نیاز دارد. اگر قصد ندارید پایگاه‌داده چکیده داشته باشید، بهتر است تنها از بخش‌های پشتیبان با انقضای خودکار مانند CNFS استفاده کنید، زیرا ورودی‌های تاریخچه همچنان توسط \&\fBexpire\fR هنگامی که تشخیص دهد مقاله‌ای دیگر در آن بخش وجود ندارد، پاک‌سازی خواهند شد. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP "\fB\-d\fR \fIdir\fR" 4 .IX Item "-d dir" اگر گزینه .B \-d استفاده شود، فایل جدید \fIhistory\fR و پایگاه‌داده در دایرکتوری مشخص‌شده \fIdir\fR ایجاد می‌شود. این گزینه زمانی مفید است که سیستم‌فایل فضای کافی برای نگهداری هم‌زمان فایل‌های تاریخچه قدیم و جدید را نداشته باشد. هنگامی که این گزینه استفاده می‌شود، \&\fBexpire\fR کارساز را در حالت متوقف‌شده (paused) رها می‌کند و یک فایل با حجم صفر و همنام با فایل جدید تاریخچه با پسوند \&\f(CW\*(C`.done\*(C'\fR ایجاد می‌کند تا نشان دهد که فرایند انقضا با موفقیت تکمیل شده است. اسکریپت فراخواننده باید فایل تاریخچه جدید را مستقر کرده و کارساز را از حالت توقف خارج کند. گزینه .B \-r باید همراه با این گزینه استفاده شود. .IP "\fB\-f\fR \fIfile\fR" 4 .IX Item "-f file" برای مشخص کردن یک فایل تاریخچه جایگزین، از گزینه .B \-f استفاده کنید. این گزینه هنگام استفاده به همراه گزینه .B \-d معتبر است، و خروجی در فایل مشخص‌شده نوشته خواهد شد. مقدار پیش‌فرض بدون گزینه .B \-f برابر با \&\f(CW\*(C`history\*(C'\fR است. .IP "\fB\-g\fR \fIfile\fR" 4 .IX Item "-g file" اگر گزینه .B \-g داده شود، یک خلاصه یک‌خطی معادل خروجی \fB\-v 1\fR ، که زمان جاری در ابتدای آن قرار گرفته است، به انتهای \fIfile\fR مشخص‌شده اضافه خواهد شد. .IP "\fB\-h\fR \fIfile\fR" 4 .IX Item "-h file" برای مشخص کردن یک فایل متنی ورودی تاریخچه جایگزین، از گزینه .B \-h استفاده کنید. \&\fBexpire\fR از پایگاه‌داده قدیمی \fIdbz\fR برای تعیین اندازه پایگاه‌داده جدید استفاده می‌کند. (اگر گزینه .B \-d استفاده نشود، نام فایل خروجی همانند نام فایل ورودی همراه با پسوند \&\f(CW\*(C`.n\*(C'\fR خواهد بود.) .Sp مقدار پیش‌فرض بدون گزینه .B \-h مسیر \fIpathdb\fR/history است. .IP \fB\-i\fR 4 .IX Item "-i" برای نادیده گرفتن پایگاه‌داده قدیمی، از گزینه .B \-i استفاده کنید. .IP \fB\-N\fR 4 .IX Item "-N" فایل کنترلی به‌طور معمول برای مقالاتی که در روش‌های ذخیره‌سازی با قابلیت انقضای خودکار قرار دارند، نادیده گرفته می‌شود. اگر از گزینه .B \-N استفاده شود، \&\fBexpire\fR همچنان از فایل کنترلی برای این مقالات استفاده می‌کند. .Sp این پارامتر تنها زمانی کاربرد دارد که \fIgroupbaseexpiry\fR در \fIinn.conf\fR برابر با false تنظیم شده باشد. .IP \fB\-n\fR 4 .IX Item "-n" اگر \fBinnd\fR در حال اجرا نیست، از گزینه .B \-n استفاده کنید تا \&\fBexpire\fR دستورات \&\f(CW\*(C`pause\*(C'\fR یا \&\f(CW\*(C`go\*(C'\fR را ارسال نکند. (برای جزئیات بیشتر درباره این دستورات، به .BR ctlinnd (8) مراجعه کنید). توجه داشته باشید که \&\fBexpire\fR تنها برای مدت زمان بسیار کوتاهی نیاز به دسترسی انحصاری دارد \-\- به اندازه‌ای که بررسی کند آیا مقالات جدیدی از زمان رسیدن اولیه به انتهای فایل دریافت شده‌اند یا خیر، و نام فایل‌های جدید را به نام فایل‌های کاری تغییر دهد. .IP \fB\-p\fR 4 .IX Item "-p" دستور \&\fBexpire\fR تصمیمات خود را بر اساس زمان دریافت مقاله، همان‌طور که در فایل \fIhistory\fR ثبت شده است، اتخاذ می‌کند. این بدان معناست که مقالات اغلب کمی بیشتر از سایر برنامه‌های انقضا که تصمیمات خود را بر اساس تاریخ ارسال (posting date) مقاله قرار می‌دهند نگهداری می‌شوند. برای استفاده از تاریخ ارسال مقاله، از گزینه .B \-p استفاده کنید. .IP "\fB\-r\fR \fIreason\fR" 4 .IX Item "-r reason" دستور \&\fBexpire\fR به‌طور معمول هنگامی که به دسترسی انحصاری به فایل \fIhistory\fR نیاز دارد، یک دستور \&\f(CW\*(C`pause\*(C'\fR به دیمن محلی \fBinnd\fR ارسال کرده و از رشته \&\f(CW\*(C`Expiring\*(C'\fR به‌عنوان دلیل (reason) استفاده می‌کند. برای ارائه دلیلی متفاوت، از گزینه .B \-r استفاده کنید. شناسه فرایند به انتهای دلیل اضافه خواهد شد. هنگامی که کار \&\fBexpire\fR پایان یافت و فایل \fIhistory\fR جدید آماده شد، یک دستور \&\f(CW\*(C`go\*(C'\fR ارسال می‌کند. همچنین گزینه .B \-n را ببینید. .IP "\fB\-s\fR \fIsize\fR" 4 .IX Item "-s size" دستور \&\fBexpire\fR اندازه بهینه فایل \fIhistory\fR جدید را بر اساس اندازه فایل قبلی تعیین می‌کند. در صورتی که بخواهید اندازه‌ای مشخص را تحمیل کنید، از این گزینه برای بهینه‌سازی پایگاه‌داده تاریخچه جدید برای تقریباً \fIsize\fR جفت کلید-مقدار (یعنی خطوط موجود در \fIhistory\fR) استفاده کنید. مشخص کردن دقیق اندازه، پایگاه‌داده کارآمدتری ایجاد خواهد کرد. (اندازه باید تخمینی از تعداد نهایی مقالات، معمولاً اندازه فایل قدیمی \fIhistory\fR بر حسب تعداد خطوط باشد.) .IP \fB\-t\fR 4 .IX Item "-t" اگر گزینه .B \-t استفاده شود، آنگاه \&\fBexpire\fR فهرستی از نشانه‌هایی (tokens) که باید حذف شوند را در خروجی استاندارد خود تولید می‌کند، و فایل \fIhistory\fR جدید در \fIhistory.n\fR ، \fIhistory.n.dir\fR ، \fIhistory.n.index\fR و \fIhistory.n.hash\fR باقی خواهد ماند. این گزینه در صورت استفاده به همراه گزینه .B \-n برای اشکال‌زدایی مفید است. توجه داشته باشید که در صورت استفاده از گزینه .B \-f ، نام مشخص‌شده با آن گزینه به‌جای \fIhistory\fR استفاده خواهد شد. .IP "\fB\-v\fR \fIlevel\fR" 4 .IX Item "-v level" گزینه .B \-v برای افزایش پرگویی (verbosity) برنامه استفاده می‌شود که پیام‌هایی را در خروجی استاندارد تولید می‌کند. مقدار \fIlevel\fR باید یک عدد باشد، که اعداد بالاتر منجر به خروجی بیشتری می‌شوند. سطح یک مجموع اقدامات مختلف انجام‌شده را چاپ می‌کند (اگر فایل \fIhistory\fR جدیدی نوشته نشود معتبر نیست)، سطح دو گزارشی از هر فایل به‌صورت مجزا چاپ می‌کند، در حالی که سطح پنج منجر به چندین خط خروجی به ازای هر خط تاریخچه پردازش‌شده می‌شود. .IP "\fB\-w\fR \fInumber\fR" 4 .IX Item "-w number" از گزینه .B \-w برای «تحریف» زمان (warp) استفاده کنید تا \&\fBexpire\fR تصور کند در زمانی غیر از زمان جاری در حال اجرا است. مقدار باید یک عدد ممیز شناور علامت‌دار باشد که تعداد روزها را به‌عنوان انحراف (offset) مشخص می‌کند. .IP \fB\-x\fR 4 .IX Item "-x" اگر گزینه .B \-x استفاده شود، آنگاه \&\fBexpire\fR هیچ فایل تاریخچه جدیدی ایجاد نخواهد کرد. این گزینه بیش از همه زمانی مفید است که با گزینه‌های .B \-n و .B \-t ترکیب شود تا مشخص گردد چگونه سیاست‌های انقضای مختلف، میزان فضای دیسک استفاده‌شده را تغییر می‌دهند. .IP "\fB\-z\fR \fIfile\fR" 4 .IX Item "-z file" اگر گزینه .B \-z استفاده شود، مقالات حذف نمی‌شوند، بلکه نام آن‌ها به انتهای \fIfile\fR مشخص‌شده اضافه می‌شود. به توضیحات \&\fBdelayrm\fR در .BR news.daily (8) مراجعه کنید. اگر نام فایلی مشخص شود، به‌عنوان فایل کنترلی در نظر گرفته شده و بر اساس قوانین در \fIexpire.ctl\fR تجزیه می‌شود. از یک خط تیره منفرد (\&\f(CW\*(C`\-\*(C'\fR) می‌توان برای خواندن فایل از ورودی استاندارد استفاده کرد. اگر فایلی مشخص نشود، فایل \fIpathetc\fR/expire.ctl خوانده می‌شود. .SH "گزارش سنگ قبر (TOMBSTONE LOG)" .IX Header "TOMBSTONE LOG" هنگامی که \fIexpiretombstone\fR و \fIgroupbaseexpiry\fR در \fIinn.conf\fR فعال باشند، \&\fBexpire\fR گزارش حذفیات در هر چرخه را که توسط \&\fBexpireover\fR ، \&\fBinnd\fR و \&\fBsm \-r\fR تولید می‌شود (فایل‌های گزارش \fIexpireover.tombstone\fR و \fIcancels.tombstone\fR در \fIpathdb\fR) مصرف می‌کند تا بتواند ورودی‌های تاریخچه را برای آن مقالات بدون انجام فراخوان سیستمی \&\f(CW\*(C`SMretrieve(RETR_STAT)\*(C'\fR به ازای هر مقاله حذف کند. یک گزارش سنگ قبر (tombstone) خالی به‌منزله «عدم وجود لغو در این چرخه» تلقی شده و از پویش کند به‌طور کامل صرف‌نظر می‌شود. برای چرخه حیات فایل، مدل قفل‌گذاری و شیوه بازیابی، به .BR inn.conf (5) در زیربخش \fIexpiretombstone\fR مراجعه کنید. .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" نوشته‌شده توسط Rich $alz برای InterNetNews. تبدیل به POD توسط Julien Elie. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" .BR ctlinnd (8), .BR expire.ctl (5), .BR expireover (8), .BR history (5), .BR inn.conf (5), .BR innd (8), .BR libinn_dbz (3), .BR libinn_inndcomm (3), .BR news.daily (8).