SM(8) InterNetNews Documentation SM(8)

sm - رابط خط فرمان برای مدیر ذخیره‌سازی INN

sm [-cdHiqRrSs] [token ...]

مدیر ذخیره‌سازی INN زیرسیستمی است که تمامی مقاله‌ها و اینکه در کدام پشتیبان ذخیره‌سازی (storage backend) قرار دارند را ذخیره و ردگیری می‌کند. به تمامی مقاله‌های ذخیره‌شده یک توکن API ذخیره‌سازی اختصاص داده می‌شود. sm یک رابط خط فرمان برای این مدیر ذخیره‌سازی است که عمدتاً جهت بازیابی مقاله‌ها با استفاده از آن توکن‌ها، و همچنین انجام سایر عملیات روی زیرسیستم ذخیره‌سازی به کار می‌رود.

token توکن یک مقاله است (همان چیزی که توسط grephistory بازگردانده می‌شود یا در فایل history ذخیره شده است). شکل ظاهری آن چیزی شبیه به این است:

@0502000005A4000000010000000000000000@

برای هر عملیاتی غیر از -s، می‌توان هر تعداد توکن را در خط فرمان مشخص کرد. اگر توکنی مشخص نشود، sm به‌طور معمول توکن‌ها را از ورودی استاندارد، یکی در هر خط، می‌خواند. عملکرد پیش‌فرض، بازیابی و نوشتن مقاله متناظر با هر توکن داده‌شده در خروجی استاندارد است.

اگر گزینه -s داده شود، sm در عوض، مقاله ارائه‌شده در ورودی استاندارد را (در قالب محلی سیستم، مگر اینکه -R مشخص شده باشد که در آن صورت قالب انتقالی/سیمی (wire format) انتظار می‌رود) با استفاده از قوانین استاندارد زیرسیستم ذخیره‌سازی ذخیره می‌کند. در صورت ذخیره موفقیت‌آمیز مقاله، توکن آن مقاله در خروجی استاندارد چاپ می‌شود. لطفاً توجه داشته باشید که این دستور هیچ تلاشی برای نوشتن ورودی تاریخچه (history entry) یا داده‌های مرور کلی (overview data) انجام نمی‌دهد و بنابراین تنها در شرایط بسیار خاص کاربرد دارد.

شکل واضح و رمزگشایی‌شده توکن API ذخیره‌سازی را نمایش می‌دهد. هر بخش از توکن در قالب یک رشته قابل‌خواندن برای انسان توضیح داده می‌شود. این دستور در کنار سایر اطلاعات، مسیری را که مقاله مربوطه باید در آن ذخیره شود، ارائه می‌دهد.
به‌جای بازیابی مقاله مشخص‌شده، آن را حذف می‌کند. این کار مقاله را از مخزن اسپول اخبار (news spool) حذف خواهد کرد و پس از آن مقاله توسط هیچ بخشی از INN قابل بازیابی نخواهد بود. این عملکرد معادل "ctlinnd cancel" است، با این تفاوت که به‌جای شناسه پیام (message-ID) یک توکن API ذخیره‌سازی دریافت می‌کند.

هنگامی که تنظیم expiretombstone در فایل inn.conf برابر با true باشد، sm -r همچنین توکن لغوشده را به فایل cancels.tombstone در pathdb اضافه می‌کند تا در اجرای بعدی expire بتوان ورودی تاریخچه مربوطه را بدون نیاز به بررسی جداگانه ذخیره‌سازی برای هر مقاله حذف کرد. خطاهای احتمالی در افزودن به این فایل ثبت می‌شوند اما بر روند لغو مقاله تأثیری نخواهند داشت. برای آگاهی از سازوکار کامل این فرآیند، به inn.conf(5) تحت عنوان expiretombstone مراجعه کنید.

تنها سرآیندها (هدرهای) مقاله را به‌جای کل مقاله بازیابی می‌کند. این گزینه نمی‌تواند همراه با گزینه‌های -d، -r، -i یا -S استفاده شود.
نام گروه خبری (newsgroup) و شماره مقاله مرتبط با توکن را به‌جای خود مقاله نشان می‌دهد. توجه داشته باشید که برای مقاله‌های ارسال‌شده در چند گروه (crossposted)، تنها اولین گروه خبری و شماره مقاله‌ای که مقاله به آن مرتبط است بازگردانده می‌شود.
تمامی پیام‌های خطا به جز خطاهای نحوه استفاده (usage errors) را نادیده می‌گیرد.
مقاله را به‌صورت خام (raw) نمایش می‌دهد. این بدان معناست که پایانه‌های خطوط به پایانه‌های خط محلی سیستم تبدیل نمی‌شوند و به‌صورت دنباله‌های CRLF باقی می‌مانند؛ نقطه‌های ابتدای خطوط همچنان برای ارسال از طریق پروتکل NNTP اسکیپ‌شده خواهند بود و مقاله با دنباله CRLF.CRLF پایان می‌یابد.

هنگامی که همراه با گزینه -s به کار رود، مقاله‌ها را در قالب انتقالی (wire format) می‌خواند.

مقاله را در قالب مورد استفاده فایل‌های اسپول rnews در خروجی استاندارد می‌نویسد. می‌توان چندین مقاله را در این قالب نوشت، و خروجی حاصل را می‌توان به rnews (برای مثال در سیستمی دیگر) هدایت کرد تا آن مقاله‌ها به INN تزریق شوند. این گزینه نمی‌تواند همراه با گزینه‌های -d، -r، -H، -i یا -R استفاده شود.
مقاله ارائه‌شده در ورودی استاندارد را با استفاده از قوانین عادی ذخیره‌سازی مقاله‌ها مطابق با آنچه در storage.conf(5) پیکربندی شده است، ذخیره می‌کند. در صورت ذخیره موفقیت‌آمیز، توکن جدید پیام در خروجی استاندارد چاپ می‌شود. اگر این گزینه مشخص شود، هیچ گزینه دیگری به جز -R و احتمالاً -q نباید ارائه شود. هنگامی که گزینه -R داده شود، هر تعداد مقاله در قالب سیمی/انتقالی (wire format) از ورودی استاندارد خوانده شده و ذخیره می‌شوند.

اگر تمامی عملیات‌ها با موفقیت انجام شوند، sm با وضعیت 0 خارج می‌شود. اگر عملیات روی هر یک از توکن‌های ارائه‌شده با شکست مواجه شود، sm با وضعیت 1 خارج خواهد شد، حتی اگر عملیات روی سایر توکن‌ها موفقیت‌آمیز بوده باشد. به بیان دیگر، اگر بیست توکن از طریق ورودی استاندارد به دستور "sm -r" داده شوند و ۱۹ مقاله با موفقیت حذف شوند، اما ششمین مقاله پیدا نشود، sm همچنان با وضعیت 1 خارج خواهد شد.

این بدان معناست که اگر نیاز دارید از موفقیت‌آمیز بودن یک عملیات خاص مطمئن شوید، باید sm را در هر نوبت تنها برای یک توکن اجرا کنید.

نوشته‌شده توسط Katsuhiro Kondou <kondou@nec.co.jp> برای InterNetNews. بازنویسی در POD توسط Russ Allbery <eagle@eyrie.org>.

ctlinnd(8), grephistory(1), history(5), rnews(1), storage.conf(5).

2026-06-12 INN 2.7.4