TDX-UTIL(8) InterNetNews Documentation TDX-UTIL(8)

tdx-util - ابزار دستکاری نمای کلی (overview) برای روش tradindexed

tdx-util [-AFcgioO] [-a article] [-f status] [-n newsgroup] [-p path] [-R path]

tdx-util یک رابط مدیریتی برای روش نمای کلی (overview) از نوع tradindexed در INN است. این ابزار فقط روی پایگاه‌های داده نمای کلی tradindexed کار می‌کند، نه روی هیچ نوع دیگری از نمای کلی در INN. (برای روش‌های نمای کلی ovdb و ovsqlite، به برنامه‌های اختصاصی ovdb_stat(8) و ovsqlite-util(8) مراجعه کنید.) این ابزار به مدیر سیستم اجازه می‌دهد تا اطلاعات گوناگونی را درباره وضعیت درونی پایگاه نمای کلی استخراج (dump) کند، آن را برای یافتن خطاها بازرسی نماید، و بخش‌هایی از پایگاه داده نمای کلی را بازسازی کند.

روش نمای کلی tradindexed باید قفل‌گذاری را به‌درستی انجام دهد و بنابراین باید اجرای این ابزار و انجام هرگونه عملیاتی که ارائه می‌دهد، از جمله تعمیر کامل یا بازسازی نمای کلی به ازای هر گروه خبری، در حین اجرای سرور ایمن باشد. با این حال، توجه داشته باشید که برخی از عملیات انجام‌شده توسط این ابزار ممکن است زمان زیادی ببرند و در طول این مدت قفل‌هایی را روی پایگاه داده نمای کلی نگه دارند، که بسته به فعالیت‌های جاری سرور ممکن است باعث متوقف شدن موقت سرور تا زمان اتمام عملیات tdx-util شود.

عملیات استخراج (dump) عبارتند از: گزینه -i که ایندکس اصلی (master index) پایگاه داده نمای کلی را استخراج می‌کند، گزینه -g که ایندکس یک گروه مشخص را استخراج می‌کند، و گزینه‌های -o و -O که اطلاعات نمای کلی یک گروه خاص را (شامل متادیتای اضافی ذخیره‌شده در ایندکس) در دو قالب مختلف استخراج می‌کنند. برای گزینه‌های -g، -o و -O، گزینه -n نیز باید برای مشخص کردن گروه خبری مورد نظر ارائه شود.

برای افزودن یک گروه خبری جدید به پایگاه داده نمای کلی، از گزینه -c استفاده کنید. گروه باید با -n مشخص شود. اگر وضعیت گروه چیزی غیر از "y" باشد، باید با گزینه -f تعیین شود، و شماره‌های کمترین و بیشترین مقالات می‌توانند با -a مشخص گردند. اگر به جای یک بازه فقط یک عدد داده شود، آن عدد به عنوان بالاترین شماره در نظر گرفته شده و کمترین شماره برابر ۱ تنظیم خواهد شد.

برای بازرسی کل پایگاه داده نمای کلی جهت یافتن مشکلات، از گزینه -A استفاده کنید. هرگونه مشکل یافت‌شده به خروجی خطای استاندارد گزارش می‌شود. برای اصلاح خطاهای یافت‌شده از -F استفاده کنید.

برای بازسازی پایگاه داده یک گروه خبری مشخص، از گزینه -R استفاده کنید. گزینه -R مسیری به یک دایرکتوری را دریافت می‌کند که شامل تمام مقالات آن گروه خبری است، به ازای هر فایل یک مقاله. نام فایل‌ها باید شماره مقالات در آن گروه باشد. (به عبارت دیگر، این دایرکتوری باید یک دایرکتوری spool سنتی برای آن گروه باشد.) همچنین باید گزینه -n برای مشخص کردن گروه خبری که نمای کلی آن بازسازی می‌شود، ارائه گردد.

برای تمام عملیات انجام‌شده توسط tdx-util، می‌توان با استفاده از گزینه -p پایگاه داده نمای کلی متفاوتی نسبت به آنچه در inn.conf مشخص شده تعیین کرد.

تعداد رکوردهای نمای کلی ذخیره‌شده در پایگاه داده را می‌توان با دستور "inndf -n" به دست آورد.

شماره مقاله یا مقالاتی که باید روی آن‌ها عملیات انجام شود. article یک بازه معتبر NNTP است، به این معنی که می‌تواند یک شماره مقاله تکی یا بازه‌ای از شماره مقالات (مانند "1-5") باشد. ابتدا یا انتهای بازه (یا هر دو) می‌توانند حذف شوند که در این صورت روی اولین یا آخرین شماره مقاله در گروه تنظیم خواهند شد. بنابراین فرستادن "-" برای article معادل استفاده نکردن از گزینه -a است.

تنها در ترکیب با گزینه‌های -o و -O برای استخراج اطلاعات نمای کلی، یا با -c برای تعیین کمترین و بیشترین شماره مقاله هنگام ایجاد گروه کاربرد دارد.

بازرسی کل پایگاه داده نمای کلی برای یافتن مشکلات. این گزینه بررسی‌های یکپارچگی درونی پیاده‌سازی نمای کلی tradindexed را اجرا می‌کند و مواردی چون اعتبار و دسترس‌پذیری تمام ورودی‌های ایندکس گروه‌ها، قالب ورودی‌های نمای کلی جداگانه، تطابق ورودی‌های ایندکس با داده‌های نمای کلی و موارد مشابه را بررسی می‌نماید. هیچ تغییری در پایگاه داده اعمال نخواهد شد، اما مشکلات در خروجی خطای استاندارد گزارش می‌شوند.
ایجاد یک گروه جدید در پایگاه داده نمای کلی. گروه باید با -n مشخص شود. وضعیت گروه خبری به‌طور پیش‌فرض "y" است اما می‌توان آن را با -f تنظیم کرد. شماره‌های کمترین و بیشترین مقالات به‌طور پیش‌فرض به ترتیب ۱ و ۰ هستند، اما می‌توان با -a آن‌ها را مشخص کرد. اگر فقط یک عدد به -a داده شود، به عنوان بیشترین شماره مقاله در نظر گرفته می‌شود.
بازرسی کل پایگاه داده نمای کلی برای یافتن مشکلات، و اصلاح آن‌ها در صورت امکان به محض شناسایی. این گزینه بررسی‌های یکپارچگی درونی پیاده‌سازی نمای کلی tradindexed را اجرا می‌کند و مواردی چون اعتبار و دسترس‌پذیری تمام ورودی‌های ایندکس گروه‌ها، قالب ورودی‌های نمای کلی جداگانه، تطابق ورودی‌های ایندکس با داده‌های نمای کلی و موارد مشابه را بررسی می‌نماید. راهبرد مورد استفاده هنگام رفع مشکلات، دور ریختن داده‌های غیرقابل بازیابی است؛ بنابراین توجه داشته باشید که استفاده از این گزینه در صورت خراب بودن داده‌های نمای کلی، ممکن است منجر به غیرقابل دسترس شدن مقالات شود.

برای دیدن آنچه توسط -F تغییر خواهد کرد، ابتدا tdx-util را با گزینه -A اجرا کنید.

هنگام ایجاد یک گروه خبری با -c، وضعیت گروه تازه ایجادشده را به جای "y" روی status تنظیم می‌کند. تنها با گزینه -c کاربرد دارد.
استخراج (dump) ایندکس یک گروه مشخص. فیلدها به ترتیب عبارتند از: شماره مقاله، آفست داده‌های مربوط به آن مقاله در فایل داده‌های نمای کلی آن گروه، طول داده‌های نمای کلی، زمان (به ثانیه از مبدأ epoch) ورود مقاله به سرور، زمان (به ثانیه از مبدأ epoch) انقضای مقاله بر اساس فیلد هدر Expires آن (یا ۰ در صورتی که فیلد هدر Expires وجود نداشته باشد)، و نشانه (token) مربوط به Storage API برای آن مقاله.

در صورت استفاده از این گزینه، گزینه -n نیز باید برای مشخص کردن گروه خبری مورد نظر ارائه شود.

استخراج ایندکس اصلی (master index) پایگاه داده نمای کلی. این شامل اطلاعاتی مشابه فایل active سرور است، مانند بالاترین و پایین‌ترین شماره‌های ثبت‌شده و وضعیت نظارت (moderation)، و همان اطلاعاتی است که nnrpd در اختیار کلاینت‌ها قرار می‌دهد.

فیلدها به ترتیب عبارتند از: نام گروه خبری، بالاترین شماره ثبت‌شده (high water mark)، پایین‌ترین شماره ثبت‌شده (low water mark)، شماره مقاله پایه (نقطه‌ای که ایندکس گروه از آنجا آغاز می‌شود)، تعداد مقالات در گروه، وضعیت گروه، زمان (به ثانیه از مبدأ epoch) حذف آن گروه خبری یا ۰ در صورتی که حذف نشده باشد، و inode مربوط به فایل ایندکس آن گروه.

می‌توان یک گروه خبری خاص را با گزینه -n مشخص کرد. اگر -n داده نشود، کل ایندکس اصلی استخراج خواهد شد.

مشخص کردن گروه خبری برای انجام عملیات؛ برای گزینه‌های -c، -g، -o، -O و -R الزامی، و برای گزینه -i اختیاری است.
استخراج اطلاعات نمای کلی یک گروه خبری، در همان قالبی که به کلاینت‌ها برگردانده می‌شود اما با یک تغییر. به انتهای هر مدخل چهار بخش داده اضافی پیوست خواهد شد: شماره مقاله طبق فایل ایندکس آن گروه با برچسب "Article:"، نشانه Storage API برای آن مقاله با برچسب "Token:"، تاریخ ورود آن مقاله به سرور در قالب تاریخ RFC 5322 با برچسب "Arrived:"، و تاریخ انقضای آن مقاله (از فیلد هدر Expires) در قالب تاریخ RFC 5322 در صورت وجود، با برچسب "Expires:".

در صورت استفاده از این گزینه، گزینه -n نیز باید برای مشخص کردن گروه خبری مورد نظر ارائه شود. به‌طور پیش‌فرض، تمام اطلاعات نمای کلی آن گروه خبری استخراج می‌شود، اما می‌توان با گزینه -a استخراج را به اطلاعات یک مقاله تکی یا بازه‌ای از شماره مقالات محدود کرد.

استخراج اطلاعات نمای کلی یک گروه خبری در قالبی که توسط overchan به عنوان ورودی استفاده می‌شود. هر خط با نشانه Storage API، برچسب زمانی ورود به ثانیه از مبدأ epoch، برچسب زمانی انقضا در همان قالب (یا ۰ اگر فیلد هدر Expires وجود نداشته باشد)، و سپس داده‌های نمای کلی آغاز می‌شود.

در صورت استفاده از این گزینه، گزینه -n نیز باید برای مشخص کردن گروه خبری مورد نظر ارائه شود. به‌طور پیش‌فرض، تمام اطلاعات نمای کلی آن گروه خبری استخراج می‌شود، اما می‌توان با گزینه -a استخراج را به اطلاعات یک مقاله تکی یا بازه‌ای از شماره مقالات محدود کرد.

عملیات را روی پایگاه داده نمای کلی واقع در path انجام می‌دهد، و مسیر نمای کلی مشخص‌شده در inn.conf را نادیده می‌گیرد.
بازسازی نمای کلی برای یک گروه مشخص بر اساس مقالات ذخیره‌شده در path. مقالات باید به شکل دایرکتوری spool سنتی باشند؛ به عبارت دیگر، هر مقاله باید در یک فایل جداگانه باشد و نام فایل باید با شماره آن مقاله مطابقت داشته باشد.

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

استخراج ایندکس اصلی برای پایگاه داده نمای کلی در /news/overview، بدون توجه به مسیر نمای کلی مشخص‌شده در inn.conf:

tdx-util -i -p /news/overview

استخراج ایندکس گروه برای example.test:

tdx-util -g -n example.test

استخراج اطلاعات کامل نمای کلی برای example.test:

tdx-util -o -n example.test

استخراج اطلاعات نمای کلی برای مقالات ۴۵ و بالاتر در example.test:

tdx-util -o -n example.test -a 45-

ایجاد یک ورودی برای example.test با حالت m و کمترین و بیشترین شماره مقالات به ترتیب ۴ و ۲۳:

tdx-util -c -n example.test -f m -a 4-23

بازرسی کل پایگاه داده نمای کلی برای یافتن هرگونه مشکل:

tdx-util -A

بازسازی اطلاعات نمای کلی برای example.test از یک دایرکتوری spool سنتی:

tdx-util -R <patharticles in inn.conf>/example/test -n example.test

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

نوشته‌شده توسط Russ Allbery <eagle@eyrie.org> برای InterNetNews.

inndf(8), makehistory(8), nnrpd(8).

2023-03-19 INN 2.7.4