ARCHIVE(8) InterNetNews Documentation ARCHIVE(8)

archive.inn - اسکریپت بایگانی مقالات و اخبار یوزنت در INN

archive [-cfr] [-a archive] [-i index] [-p pattern] [input]

دستور archive از فایل‌های مشخص‌شده در ورودی استاندارد خود رونوشت تهیه می‌کند. این ابزار معمولاً به‌صورت یک فید کانال تحت innd یا توسط یک اسکریپت پیش از اجرای news.daily اجرا می‌شود.

دستور archive فایل ورودی input نام‌برده‌شده یا در صورت مشخص نشدن هیچ فایلی، ورودی استاندارد را می‌خواند. ورودی به‌صورت دنباله‌ای از خطوط در نظر گرفته می‌شود؛ خطوط خالی و خطوطی که با علامت هش ("#") شروع می‌شوند نادیده گرفته خواهند شد. تمامی خطوط دیگر باید نشانه‌گر (توکن) مقاله‌ای را برای بایگانی مشخص کنند. هر مقاله از روی یک توکن بازیابی می‌شود و از فیلد سرایند Xref برای تعیین فایل مقصد در دایرکتوری بایگانی استفاده می‌گردد. با استفاده از گزینه -p می‌توانید مقصدهای برگرفته از فیلد سرایند Xref را محدود کنید.

فایل‌ها در دایرکتوری درون دایرکتوری بایگانی، یعنی patharchive در فایل inn.conf (یا دایرکتوری دیگری که با گزینه -a مشخص شده است) کپی می‌شوند. حالت پیش‌فرض، ایجاد ساختاری سلسله‌مراتبی است که شبیه به ذخیره‌سازی سنتی اسپول اخبار مقاله‌ها عمل می‌کند؛ دایرکتوری‌های میانی در صورت نیاز ایجاد خواهند شد. برای مثال، اگر توکن ورودی نشان‌دهنده مقاله ۲۲۱۱ در گروه خبری comp.sources.unix باشد، archive به‌طور پیش‌فرض این مقاله را به‌صورت:

comp/sources/unix/2211

در ناحیه بایگانی ذخیره خواهد کرد. این رفتار را می‌توان با گزینه‌های -c و -f تغییر داد.

اگر گزینه -a مشخص شود، آرگومان آن به جای patharchive در فایل inn.conf ، ریشه ناحیه بایگانی را تعیین می‌کند.
اگر گزینه -c مشخص شود، نام دایرکتوری‌ها همان‌طور که در توضیحات گزینه -f آمده است، مسطح خواهند شد. علاوه بر این، تمامی پست‌ها در یک فایل ادغام می‌شوند و در صورت وجود فایل، به انتهای آن ضمیمه خواهند شد. نام فایل به‌صورت "YYYYMM" و برگرفته از زمان کنونی اجرای archive خواهد بود. به عبارت دیگر، در صورتی که مقاله‌ای در گروه comp.sources.unix در تاریخ ۱۴ دسامبر ۱۹۹۸ ارائه شود، مقاله به انتهای فایل:
comp.sources.unix/199812

در ناحیه بایگانی ضمیمه می‌شود.

مقاله‌ها با خطی که تنها شامل "-----------" است از یکدیگر جدا خواهند شد.

اگر گزینه -f به کار رود، نام دایرکتوری‌ها مسطح شده و اسلش‌ها با نقطه جایگزین می‌شوند. به بیان دیگر، مقاله ۲۲۱۱ در گروه comp.sources.unix در مسیر:
comp.sources.unix/2211

در ناحیه بایگانی نوشته خواهد شد.

اگر گزینه -i استفاده شود، archive برای هر مقاله‌ای که بایگانی می‌کند، یک خط به انتهای فایل index اضافه خواهد کرد. این خط شامل نام فایل مقصد، فیلد سرایند Message-ID و فیلد سرایند Subject پیام خواهد بود که با فاصله از هم جدا شده‌اند. در صورت نبود هر یک از این سرایندها (که در صورت پذیرفته شدن مقاله توسط innd معمولاً رخ نمی‌دهد)، به جای آن "<none>" قرار می‌گیرد. سرایندها با استفاده از همان قوانینی که برای تولید داده‌های بازبینی (overview) استفاده می‌شود، تبدیل خواهند شد (سطرهای چندخطی ادغام شده و سپس نویسه‌های تب، CR و LF با فاصله جایگزین می‌شوند).
مقصدهای برگرفته از فیلد سرایند Xref را به گروه‌های مشخص‌شده در pattern محدود می‌کند. pattern یک الگوی uwildmat منطبق بر گروه‌های خبری است که مایلید archive آن‌ها را پردازش کند.
به‌طور پیش‌فرض، archive خطای استاندارد خود را به pathlog/errlog هدایت می‌کند. برای لغو این تغییر مسیر، از گزینه -r استفاده کنید.

اگر ورودی به پایان برسد، archive با وضعیت صفر خارج می‌شود. در صورت وقوع خطای ورودی/خروجی (I/O)، برنامه تلاش می‌کند ورودی خود را با کپی کردن درون یک فایل موقت ذخیره (spool) کند. اگر نام فایل ورودی داده نشده باشد، ورودی استاندارد در مسیر pathoutgoing/archive کپی شده و برنامه خارج خواهد شد. اگر نام فایل ورودی مشخص شده باشد، یک فایل موقت با نام input.bch (در صورتی که input یک مسیر مطلق باشد) یا pathoutgoing/input.bch (در صورتی که نام فایل با اسلش شروع نشود) ایجاد می‌شود. پس از کپی شدن ورودی، archive تلاش خواهد کرد نام این فایل موقت را به نام فایل ورودی تغییر دهد و سپس خارج شود.

یک مدخل معمول در newsfeeds(5) برای بایگانی بیشتر گروه‌های خبری منابع به شرح زیر است:

source-archive!\
    :!*,*sources*,!*wanted*,!*.d\
    :Tc,Wn\
    :<pathbin>/archive -f -i <patharchive>/INDEX

عبارت‌های <pathbin> و <patharchive> را با مسیرهای مناسب جایگزین کنید.

نگارش‌یافته توسط Rich $alz <rsalz@uunet.uu.net> برای InterNetNews. تبدیل‌شده به POD توسط Russ Allbery <eagle@eyrie.org>.

inn.conf(5), libinn_uwildmat(3), newsfeeds(5).

2022-07-10 INN 2.7.4