NUT-DRIVER-ENUMERA(8) NUT Manual NUT-DRIVER-ENUMERA(8)

nut-driver-enumerator - ابزاری برای نگاشت مدخل‌های دستگاه NUT به نمونه‌های سرویس

nut-driver-enumerator.sh -h

nut-driver-enumerator.sh (بدون آرگومان)

nut-driver-enumerator.sh [--COMMAND]

اسکریپت nut-driver-enumerator.sh (که با نام «NDE» نیز شناخته می‌شود) راه‌اندازی و پرس‌وجوی نگاشت میان بخش‌های پیکربندی درایور NUT برای هر دستگاه تحت‌نظر و نمونه‌های سرویس در چارچوب مدیریت سرویس سیستم‌عامل را پیاده‌سازی می‌کند (در پلتفرم‌هایی که NUT از قبل از این یکپارچه‌سازی پشتیبانی می‌کند — در حال حاضر این پلتفرم‌ها شامل توزیع‌های لینوکس با systemd و سیستم‌های مشتق‌شده از پایه‌کد Solaris 10، از جمله Sun/Oracle Solaris تجاری و توزیع‌های متعدد متن‌باز illumos با SMF است)، که چنین درایورهایی برای اجرا و مدیریت مستقل درون آن‌ها کپسوله‌سازی می‌شوند. این اسکریپت ممکن است در بسته‌بندی سایر سیستم‌عامل‌ها نصب نشده باشد.

با نمایش هر درایور NUT به‌صورت یک نمونه سرویس جداگانه، می‌توان وابستگی‌ها را تعریف کرد (برای نمونه، درایورهای شبکه باید پس از فعال شدن قابلیت شبکه در سیستم‌عامل شروع به کار کنند، اما درایورهای USB/Serial نباید منتظر آن بمانند)، و همچنین این درایورها می‌توانند به‌طور مستقل با خطا مواجه شده یا به وضعیت نگهداری برده شوند (برخلاف یک سرویس یکپارچه مبتنی بر upsdrvctl(8) که نیازمند اجرای تمام موارد پیکربندی‌شده است). برای چند درایور خاص مانند dummy-ups(8)، clone(8)، clone-outlet(8) و failover(8)، این موضوع حتی ممکن است شامل وابستگی متقابل میان نمونه‌های سرویس درایورهای گوناگون NUT به یکدیگر باشد.

این اسکریپت یک رابط یکپارچه برای ابزارهای بعدی NUT مانند upsdrvsvcctl(8) فراهم می‌کند تا منطق خود را تا حد ممکن و کاربردی، به‌صورت مستقل از پلتفرم پیاده‌سازی کنند. این اسکریپت در حال حاضر برای استفاده مستقیم کاربر نهایی در نظر گرفته نشده است (و به همین دلیل در پوشه libexec قرار دارد)، و در عوض upsdrvsvcctl داده‌ها و عملکردهای پرکاربرد را با آرگومان‌های list و resync خود ارائه می‌دهد.

بخشی از پیچیدگی پلتفرم که nut-driver-enumerator.sh آن را پنهان می‌سازد، تفاوت در قوانین نام‌های معتبر نمونه‌های سرویس در چارچوب‌های مختلف، و نیز ابزارهای سیستمی و الگوهای نام‌گذاری مرتبط است.

بسته به پلتفرم، این اسکریپت ممکن است درون انواع مختلفی از واحدهای سرویس قرار گیرد تا به‌صورت خودکار اجرا شود (برای نمونه، هنگام راه‌اندازی سیستم، یا به‌صورت دوره‌ای برای دریافت سریع تغییرات ups.conf(5) پس از ویرایش، یا یکپارچه‌سازی با سامانه پایش فایل‌سیستم تا هنگام تغییر پیکربندی فراخوانی شود). برخی از این حالت‌ها برای مواردی منطقی هستند که دستگاه‌های برق به‌ندرت (یا هرگز) تغییر نمی‌کنند، مانند یک UPS خانگی یا اداری کوچک که سال‌ها به یک روش پایش می‌شود؛ حالت‌های دیگر می‌توانند به خودکارسازی سیستم پایش در مراکز داده کمک کنند که استقرار (یا شناسایی) دستگاه‌ها می‌تواند بسیار پویاتر باشد.

nut-driver-enumerator.sh (بدون آرگومان)

به‌روزرسانی کپسوله‌سازی دستگاه‌ها درون سرویس‌ها.

nut-driver-enumerator.sh --daemon(=freq)

به‌روزرسانی کپسوله‌سازی دستگاه‌ها درون سرویس‌ها در یک حلقه بی‌پایان؛ بسامد پیش‌فرض ۶۰ ثانیه است.

nut-driver-enumerator.sh --daemon-after(=freq)

به‌روزرسانی کپسوله‌سازی دستگاه‌ها درون سرویس‌ها در یک حلقه بی‌پایان؛ ابتدا یک بار حلقه را اجرا کرده و سپس به‌صورت دیمن درمی‌آید (بدین ترتیب، واحد سرویس تنها زمانی شروع‌شده تلقی می‌شود که پیکربندی NUT و نمونه‌های درایور همگام باشند). بسامد پیش‌فرض ۶۰ ثانیه است.

nut-driver-enumerator.sh --reconfigure

توقف و لغو ثبت تمامی نمونه‌های سرویس و ایجاد مجدد آن‌ها (برای نمونه، اگر الگوی وابستگی جدیدی در نسخه جدید اسکریپت یا بسته تعریف شده باشد).

nut-driver-enumerator.sh --get-service-framework

چاپ چارچوب مدیریت سرویس شناسایی‌شده در این سیستم‌عامل.

nut-driver-enumerator.sh --list-devices

چاپ فهرست دستگاه‌ها در پیکربندی NUT.

nut-driver-enumerator.sh --list-services

چاپ فهرست نمونه‌های سرویسی که دستگاه‌های ثبت‌شده NUT را کپسوله‌سازی می‌کنند (نام کامل واحد سرویس).

nut-driver-enumerator.sh --list-instances

چاپ فهرست نمونه‌های سرویسی که دستگاه‌های ثبت‌شده NUT را کپسوله‌سازی می‌کنند (تنها پسوند نمونه).

nut-driver-enumerator.sh --get-service-for-device DEV

چاپ نام کامل واحد سرویسی که دستگاه NUT با نام DEV را کپسوله‌سازی می‌کند.

nut-driver-enumerator.sh --get-device-for-service SVC

چاپ نام دستگاه NUT متناظر با نام کامل یا پسوند نمونه واحد سرویس SVC که آن را کپسوله‌سازی کرده است.

nut-driver-enumerator.sh --list-services-for-devices

چاپ فهرستی جداشده با تب (TAB) از واحدهای سرویس و نام دستگاه‌های متناظر NUT که توسط هر واحد کپسوله‌سازی شده‌اند.

nut-driver-enumerator.sh --show-all-configs

نمایش فهرست کامل و استانداردشده بلوک‌های پیکربندی دستگاه (مشابه آنچه بعداً توسط تجزیه‌کننده اسکریپت برای تصمیم‌گیری استفاده می‌شود).

nut-driver-enumerator.sh --show-device-config DEV

نمایش بلوک پیکربندی دستگاه NUT تعیین‌شده.

nut-driver-enumerator.sh --show-device-config-value DEV KEY

نمایش مقدار یک کلید پیکربندی مشخص از دستگاه NUT تعیین‌شده.

به‌طور پیش‌فرض، اجرای nut-driver-enumerator.sh بدون آرگومان، به‌طور خودکار هر نمونه سرویس تازه‌ثبت‌شده‌ای را که دستگاه‌های NUT را در بر می‌گیرد راه‌اندازی می‌کند و در صورت تغییر پیکربندی، سرویس nut-server را نیز راه‌اندازی مجدد می‌نماید. متغیر محیطی AUTO_START=no این بخش از رفتار پیش‌فرض را غیرفعال می‌کند.

همچنین برای متغیر محیطی REPORT_RESTART_42=no به بخش زیر مراجعه کنید.

در صورتی که اسکریپت nut-driver-enumerator.sh کاری برای انجام نداشته باشد (تمامی درایورهای تعریف‌شده فعلی دقیقاً و یک‌به‌یک با نمونه‌های سرویس تعریف‌شده مطابقت داشته باشند) و در عملیات آن خطایی رخ نداده باشد، کد خروج صفر را برمی‌گرداند.

کدهای دیگر ممکن است در نتیجه همگام‌سازی مجدد نگاشت‌ها بازگردانده شوند:

42

بخش‌های دستگاه NUT و نمونه‌های سرویس سیستم قبلاً متفاوت بودند، اما اکنون مطابقت دارند — بنابراین اکنون فراخواننده احتمالاً باید برخی از سرویس‌ها را راه‌اندازی مجدد کند. توجه داشته باشید که نمونه‌های سرویس درایورها ممکن است بر حسب نیاز (توسط AUTO_START=yes) راه‌اندازی یا متوقف شده باشند — اما شاید سرویس‌های upsmon یا upssched باید راه‌اندازی مجدد شوند. اگر متغیر محیطی REPORT_RESTART_42=no را مشخص کنید، این مسیر کد مقدار ۰ را (به‌عنوان کد خروج بدون خطا) بازمی‌گرداند. در حالت پیش‌فرض، چنین پیکربندی مجدد غیرتهی باعث راه‌اندازی مجدد سرویس nut-driver-enumerator می‌شود و این امر به سایر سرویس‌های NUT وابسته به آن نیز سرایت خواهد کرد.

13

بخش‌ها و سرویس‌ها تفاوت داشتند و هنوز هم مطابقت ندارند.

1

ورودی‌های نادرست، برای نمونه عدم شناسایی چارچوب مدیریت سرویس.

2

فایل ups.conf یافت نشد یا غیرقابل خواندن است.

Jim Klimov <jimklimov+nut@gmail.com>

upsdrvsvcctl(8), ups.conf(5)

صفحه خانگی NUT (Network UPS Tools): https://www.networkupstools.org/historic/v2.8.5

06/21/2026 Network UPS Tools 2.8.5