.\" -*- 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 "EXPIREOVER 8" .TH EXPIREOVER 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)" expireover \- پاکسازی پایگاه داده overview در INN .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBexpireover\fR [\fB\-ekNpqs\fR] [\fB\-f\fR \fIfile\fR] [\fB\-w\fR \fIoffset\fR] [\fB\-z\fR \fIrmfile\fR] [\fB\-Z\fR \fIlowmarkfile\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBexpireover\fR ورودی‌های قدیمی را از پایگاه دادهٔ overview اخبار منقضی و پاکسازی می‌کند. این ابزار فهرستی از گروه‌های خبری را می‌خواند (به‌طور پیش‌فرض از \fIpathdb\fR/active\fR، اما می‌توان با گزینهٔ \fB\-f\fR فایل دیگری را مشخص کرد) و سپس اشاره‌ها به هر مقاله‌ای را که دیگر در اسپول اخبار وجود ندارد، از پایگاه دادهٔ overview حذف می‌کند. .PP اگر \fIgroupbaseexpiry\fR در \fIinn.conf\fR برابر با true باشد، \&\fBexpireover\fR همچنین مقاله‌های قدیمی را طبق قوانین انقضا در \fIexpire.ctl\fR از اسپول اخبار حذف می‌کند. در غیر این صورت فقط ورودی‌های overview را برای مقالاتی حذف می‌کند که پیش‌تر توسط فرایند دیگری حذف شده‌اند، و گزینه‌های \fB\-e\fR، \fB\-k\fR، \fB\-N\fR، \fB\-p\fR، \fB\-q\fR، \fB\-w\fR و \fB\-z\fR همگی نادیده گرفته می‌شوند. .PP هنگامی که \fIexpiretombstone\fR و \fIgroupbaseexpiry\fR در \fIinn.conf\fR فعال باشند، \&\fBexpireover\fR هر توکن لغوشده را تحت یک قفل انحصاری POSIX به انتهای فایل \fIexpireover.tombstone.NEW\fR در \fIpathdb\fR اضافه می‌کند، و در صورت اجرای موفقیت‌آمیز، نام فایل را به‌طور اتمیک جایگزین می‌کند. در حالت delayrm (\fB\-z\fR)، تغییر نام پس از موفقیت \fBfastrm\fR توسط \fBexpirerm\fR انجام می‌شود. اجرای بعدی \fBexpire\fR از این لاگ استفاده می‌کند تا از بررسی‌های تک‌به‌تک وجود در فضای ذخیره‌سازی صرف‌نظر کند. به .BR inn.conf (5) زیر بخش \fIexpiretombstone\fR مراجعه کنید. .PP هنگامی که \fIgroupbaseexpiry\fR تنظیم شده باشد، رفتار پیش‌فرض \&\fBexpireover\fR این است که مقاله را پس از منقضی شدن در تمام گروه‌های خبری که در آن‌ها ارسال همزمان (crosspost) شده بود، از اسپول حذف کند. با این حال، مقاله به محض اینکه از یک گروه خبری خاص منقضی شود، از پایگاه دادهٔ overview همان گروه حذف می‌گردد. اثر این رفتار این است که مقاله‌ای که در چندین گروه ارسال همزمان شده، با گذشتن سن آن از آستانهٔ انقضای تعیین‌شده در \fIexpire.ctl\fR برای آن گروه، یکی‌یکی از پایگاه دادهٔ overview آن گروه‌ها حذف می‌شود و سپس هنگامی که از آخرین گروه خبری نیز منقضی شد، از اسپول اخبار حذف خواهد شد. .PP مقالاتی که در بک‌اندهای ذخیره‌سازی با انقضای خودکار مانند CNFS نگهداری می‌شوند معمولاً متفاوت بررسی می‌شوند و صرف‌نظر از \fIexpire.ctl\fR، تا زمانی که از خود بک‌اند منقضی نشوند، منقضی نمی‌گردند. با این حال، گزینهٔ \fB\-N\fR را ببینید. .PP به‌طور پیش‌فرض، \&\fBexpireover\fR تمام اطلاعات overview را برای گروه‌های خبری که از سرور حذف شده‌اند پاکسازی می‌کند؛ در صورت استفاده از گزینهٔ \fB\-f\fR این رفتار غیرفعال می‌شود. .PP برای افزایش سرعت بررسی وجود هر مقاله، \&\fBexpireover\fR هنگام راه‌اندازی، یک فیلتر بلوم (Bloom filter) از روی فایل \fIhistory\fR می‌سازد. این کار، ورودی/خروجی تصادفی برای هر مقاله در فایل \fIhistory\fR را با یک خواندن ترتیبی واحد جایگزین می‌کند که برای اسپول‌های بزرگ بسیار حیاتی است. فیلتر بلوم یک کش فقط-مثبت (positive-only cache) است: اگر گزارش دهد مقاله‌ای احتمالاً وجود دارد، از جستجوی کند در history صرف‌نظر می‌شود. اگر گزارش دهد مقاله پیدا نشد، \&\fBexpireover\fR برای تضمین درستی به جستجوی مستقیم در history متوسل می‌شود. خطاهای مثبت کاذب (گزارش نادرست فیلتر بلوم مبنی بر وجود مقاله) بی‌ضرر هستند؛ ورودی overview یتیم در اجرای بعدی فرایند انقضا پاکسازی خواهد شد. .PP نرخ مثبت کاذب و مصرف حافظهٔ فیلتر بلوم با تنظیم \fIexpirebloomfp\fR در \fIinn.conf\fR کنترل می‌شود. مقداردهی آن به \f(CW\*(C`0\*(C'\fR فیلتر بلوم را غیرفعال می‌کند. فیلتر بلوم همچنین هنگام استفاده از فلگ \fB\-s\fR غیرفعال می‌شود. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-e\fR 4 .IX Item "-e" حذف مقاله‌ها از اسپول اخبار و تمامی پایگاه‌های دادهٔ overview به محض اینکه از هر یک از گروه‌های خبری ارسال‌شده در آن منقضی شوند، به‌جای نگه‌داشتن آن‌ها تا زمانی که از همهٔ گروه‌های خبری منقضی شوند. گزینه‌های \fB\-e\fR و \fB\-k\fR نمی‌توانند به‌طور همزمان استفاده شوند. در صورتی که \fIgroupbaseexpiry\fR برابر با false باشد، این فلگ نادیده گرفته می‌شود. .IP "\fB\-f\fR \fIfile\fR" 4 .IX Item "-f file" استفاده از \fIfile\fR به‌عنوان فهرست گروه‌های خبری به‌جای \fIpathdb\fR/active\fR. مقدار \fIfile\fR می‌تواند \f(CW\*(C`\-\*(C'\fR باشد تا ورودی استاندارد را مشخص کند. استفاده از این فلگ مانع از پاکسازی معمول اطلاعات overview برای گروه‌های خبری حذف‌شده از سرور می‌شود. .IP \fB\-k\fR 4 .IX Item "-k" نگه‌داشتن تمام اطلاعات overview برای یک مقاله، و همچنین خود مقاله، تا زمانی که از تمام گروه‌های خبری ارسال‌شده در آن منقضی شود. این امر می‌تواند باعث شود مقالاتی که ارسال همزمان (crosspost) شده‌اند، نسبت به آنچه قوانین \fIexpire.ctl\fR نشان می‌دهند مدت طولانی‌تری در یک گروه خبری باقی بمانند. گزینه‌های \fB\-e\fR و \fB\-k\fR نمی‌توانند به‌طور همزمان استفاده شوند. اگر \fIgroupbaseexpiry\fR برابر با false باشد، این فلگ نادیده گرفته می‌شود. .IP \fB\-N\fR 4 .IX Item "-N" اعمال قوانین \fIexpire.ctl\fR برای منقضی کردن مقاله‌ها حتی از روش‌های ذخیره‌سازی که قابلیت خود-انقضا (self-expire) دارند. این کار ممکن است مقالات را پیش از آنکه به‌طور «طبیعی» منقضی شوند از روش‌های ذخیره‌سازی خود-انقضا حذف کند. اگر \fIgroupbaseexpiry\fR برابر با false باشد، این فلگ نادیده گرفته می‌شود. .IP \fB\-p\fR 4 .IX Item "-p" به‌طور پیش‌فرض، \&\fBexpireover\fR تصمیم‌گیری دربارهٔ حذف مقاله را بر اساس زمان رسیدن آن به سرور انجام می‌دهد. این بدان معناست که ممکن است مقالات کمی طولانی‌تر از حالتی که تصمیم بر پایهٔ تاریخ ارسال مقاله باشد نگهداری شوند. در صورت تعیین این گزینه، تصمیم‌گیری‌های انقضا بر پایهٔ تاریخ ارسال مقاله خواهد بود. اگر \fIgroupbaseexpiry\fR برابر با false باشد، این فلگ نادیده گرفته می‌شود. .IP \fB\-q\fR 4 .IX Item "-q" دستور \&\fBexpireover\fR معمولاً آمار را در پایان فرایند انقضا چاپ می‌کند. گزینهٔ \fB\-q\fR مانع از نمایش این گزارش می‌شود. اگر \fIgroupbaseexpiry\fR برابر با false باشد، این فلگ نادیده گرفته می‌شود. .IP \fB\-s\fR 4 .IX Item "-s" دستور \&\fBexpireover\fR به‌طور معمول تنها در صورتی وجود مقالات در اسپول اخبار را بررسی می‌کند که پرس‌وجوی روش ذخیره‌سازی برای بررسی وجود داشتن آن مقاله «کم‌هزینه» در نظر گرفته شود. برای بررسی همیشگی وجود تمام مقالات صرف‌نظر از میزان مصرف منابع، از فلگ \fB\-s\fR استفاده کنید. برای اطلاعات بیشتر دربارهٔ این معیار به .BR storage.conf (5) مراجعه کنید. .IP "\fB\-w\fR \fIoffset\fR" 4 .IX Item "-w offset" زمان را «انحراف» می‌دهد تا \&\fBexpireover\fR تصور کند در زمانی غیر از زمان جاری اجرا می‌شود. این قابلیت گه‌گاه برای وادار کردن گروه‌ها به منقضی شدن یا نشدن، بدون نیاز به تغییر \fIexpire.ctl\fR برای آن نوبت انقضا، مفید است. \fIoffset\fR باید یک عدد اعشاری علامت‌دار باشد که تفاوت تعداد روزها نسبت به زمان فعلی را به‌عنوان «اکنون» تعیین می‌کند. اگر \fIgroupbaseexpiry\fR برابر با false باشد، این فلگ نادیده گرفته می‌شود. .IP "\fB\-z\fR \fIrmfile\fR" 4 .IX Item "-z rmfile" مقاله‌ها را بلافاصله حذف نمی‌کند بلکه مسیر یا توکن مقاله را در \fIrmfile\fR می‌نویسد، که ورودی مناسبی برای .BR fastrm (1) است. این کار می‌تواند سرعت حذف مقالات منقضی‌شده را برای آن دسته از روش‌های ذخیره‌سازی که در آن‌ها هر مقاله یک فایل مجزا است (مانند tradspool و timehash) به‌میزان چشمگیری افزایش دهد. برای جزئیات بیشتر به توضیحات کلیدواژهٔ \fIdelayrm\fR در .BR news.daily (8) مراجعه کنید. اگر \fIgroupbaseexpiry\fR برابر با false باشد، این فلگ نادیده گرفته می‌شود. .IP "\fB\-Z\fR \fIlowmarkfile\fR" 4 .IX Item "-Z lowmarkfile" پایین‌ترین شمارهٔ مقاله برای هر گروه خبری را هنگام انقضای آن در فایل تعیین‌شده می‌نویسد. این فایل سپس برای \f(CW\*(C`ctlinnd lowmark\*(C'\fR مناسب است. برای اطلاعات بیشتر به .BR ctlinnd (8) مراجعه کنید. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" به‌طور معمول \&\fBexpireover\fR از .BR news.daily (8) فراخوانی می‌شود، که در صورت نیاز مدیریت مواردی همچون پردازش \fIrmfile\fR و \fIlowmarkfile\fR را بر عهده دارد. با این حال، گاهی انقضای دستی یک گروه خبری خاص سودمند است. این کار را می‌توان با دستوری مشابه زیر انجام داد: .PP .Vb 2 \& echo example.test | expireover \-f \- \-Z /lowmark \& ctlinnd lowmark /lowmark .Ve .PP این کار به‌ویژه زمانی سودمند است که شمار زیادی از مقالات در یک گروه خاص منقضی شده باشند اما اطلاعات overview همچنان موجود باشد؛ امری که موجب می‌شود برخی کلاینت‌ها هنگام ورود اولیه به گروه خبری، پیام‌های زیادی با مضمون «this article may have been cancelled» مشاهده کنند. .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" نوشته شده توسط Rob Robertson و Rich $alz (با همکاری Dave Lawrence ) برای InterNetNews. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" .BR active (5), .BR ctlinnd (8), .BR expire (8), .BR expire.ctl (5), .BR inn.conf (5), .BR news.daily (8).