OVSQLITE-UTIL(8) InterNetNews Documentation OVSQLITE-UTIL(8)

ovsqlite-util - ابزار مدیریت و دستکاری داده‌های کلی برای ovsqlite

ovsqlite-util [-AFghioO] [-a article] [-n newsgroup] [-p path]

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

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

اجرای این ابزار در حین فعال بودن سرور کاملاً ایمن است. در صورتی که نیاز به اعمال اصلاحات روی پایگاه داده باشد (هنگام استفاده از گزینه -F)، برنامه ovsqlite-util پیش از انجام عملیات خود، سرور را به درستی متوقف کرده و سپس آن را از سر می‌گیرد.

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

از آنجا که ovsqlite-util پایگاه داده داده‌های کلی ovsqlite را مستقیماً باز می‌کند، در زمان فعال بودن INN به دلیل اینکه ممکن است ovsqlite-server قفل‌هایی روی جدول‌های خاصی نگه داشته باشد، ممکن است تکمیل عملیات زمان بیشتری طول بکشد؛ در این حالت ovsqlite-util صرفاً منتظر آزاد شدن قفل‌ها می‌ماند. (پارامتر transtimelimit در ovsqlite.conf مدت زمان یک تراکنش را کنترل می‌کند، بنابراین می‌توانید بررسی کنید که مقدار خیلی بالایی برای آن تنظیم نکرده باشید.)

برای کارکرد این برنامه، ماژول پرل "DBI" به همراه درایور "DBD::SQLite" باید نصب باشند. این بسته‌ها در بیشتر توزیع‌ها با نام‌هایی مانند "libdbd-sqlite3-perl"، "perl-DBD-SQLite" یا "p5-DBD-SQLite" موجود هستند. همچنین می‌توان آن‌ها را مستقیماً از CPAN نصب کرد (توزیع‌های "DBI" و "DBD-SQLite" در https://metacpan.org/dist/DBI و https://metacpan.org/dist/DBD-SQLite در دسترس هستند).

طبیعتاً، همان‌طور که در صفحه راهنمای ovsqlite(5) با جزئیات توضیح داده شده است، پایگاه داده مرور ovsqlite نیز باید در حال استفاده باشد.

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

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

کل پایگاه داده مرور را برای یافتن مشکلات بازرسی می‌کند. در حال حاضر، فقط یک بررسی یکپارچگی انجام می‌شود: راستی‌آزمایی اینکه کران پایین (low water mark)، کران بالا (high water mark) و تعداد مقالات هر گروه خبری با واقعیت مقالات موجود در داده‌های کلی مطابقت داشته باشد. هیچ تغییری در پایگاه داده ایجاد نخواهد شد، اما مشکلات در خروجی خطای استاندارد گزارش داده می‌شوند.
کل پایگاه داده مرور را برای یافتن مشکلات بازرسی کرده و در صورت امکان هم‌زمان با شناسایی، آن‌ها را برطرف می‌کند. این گزینه همان بررسی‌های گزینه -A را اجرا کرده و مشکلات یافت‌شده را اصلاح می‌نماید. استفاده از این گزینه متوقف کردن و از سرگیری INN را مدیریت می‌کند تا داده‌های مرور در حین عملیات توسط پردازش دیگری تغییر نکنند.

برای مشاهده مواردی که با -F تغییر خواهند کرد، ابتدا ovsqlite-util را با -A اجرا کنید.

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

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

اطلاعات مرور مرتبط با گروه خبری را از پایگاه داده استخراج می‌کند. این بخش شامل اطلاعاتی مشابه پرونده active سرور، مانند کران‌های بالا و پایین و وضعیت نظارت (moderation) است و همان اطلاعاتی است که nnrpd به کلاینت‌ها تحویل می‌دهد.

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

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

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

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

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

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

روی پایگاه داده مروری که ریشه آن در path قرار دارد عمل می‌کند و مسیر مرور مشخص‌شده در پارامتر pathoverview در inn.conf را لغو می‌نماید.

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

ovsqlite-util -i -p /news/overview

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

ovsqlite-util -g -n example.test

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

ovsqlite-util -o -n example.test

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

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

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

ovsqlite-util -A

نوشته‌شده توسط Julien ÉLIE برای InterNetNews.

expireover(8), inndf(8), makehistory(8), nnrpd(8), ovsqlite(5).

2024-05-19 INN 2.7.4