UPSSTATS.HTML(5) NUT Manual UPSSTATS.HTML(5)

upsstats.html - قالب HTML برای ابزار تحت وب upsstats در Network UPS Tools

این فایل، و فایل هم‌ساختار upsstats-single.html برای برخی موارد کاربرد خاص، توسط upsstats.cgi(8) جهت تولید صفحات وضعیت CGI در NUT استفاده می‌شوند. دستورات مشخصی شناسایی شده و به صورت بلادرنگ با عناصر گوناگون وضعیت جایگزین خواهند شد.

به عنوان یک بررسی امنیتی، فایل باید حتماً با دستور @NUT_UPSSTATS_TEMPLATE@ شروع شود.

برای جزئیات بیشتر در خصوص پیکربندی برخی وب‌سرورهای پرکاربرد جهت اجرای برنامه‌های CGI در NUT، لطفاً به صفحه راهنمای upsset.conf(5) مراجعه کنید.


نکته

این فایل قالب باید در مسیر پیکربندی NUT قرار گیرد. اگر از یک رونوشت اختصاصی از آن دایرکتوری استفاده می‌کنید یا نسخه‌ای که توسط باینری‌های منتقل‌شده به مکان‌های cgi-bin وب‌سرور شما شناسایی نمی‌شود (مانند ساخت‌های NUT برای ویندوز که به طور پیش‌فرض مسیرها را نسبت به هر باینری جستجو می‌کنند)، صادر کردن متغیر محیطی NUT_CONFPATH را از وب‌سرور مد نظر قرار دهید.


نکته

در پلتفرم‌هایی با پسوندهای الزامی برای نام فایل‌های برنامه، مانند ویندوز، ممکن است مجبور شوید به عنوان مثال از پسوند *.cgi.exe برای برنامه‌ها در فایل‌های قالب HTML استفاده کنید (مانند UPSSTATSPATH و UPSIMAGEPATH).

دستورات می‌توانند در هر کجای یک خط قرار گیرند، اما باید با @ آغاز شده و با @ پایان یابند.

هرگونه نویسه اضافی قبل یا بعد از دستورات بدون تغییر عبور داده خواهد شد.

استفاده از بیش از یک دستور در یک خط مجاز است، مادامی که هر دستور دارای نویسه شروع و پایان مختص به خود باشد.

اگر نیاز به استفاده از نویسه @ دارید، از موجودیت HTML به صورت @ استفاده کنید تا به عنوان نویسه شروع تلقی نشود.

برخی دستورات بلوک‌ها را آغاز می‌کنند — بخش‌هایی از قالب که بسته به پارامترهای معین، گنجانده، حذف یا تکرار می‌شوند.

@FOREACHUPS@

بلوکی را آغاز می‌کند که برای هر دستورالعمل MONITOR در hosts.conf(5) تکرار خواهد شد. به این ترتیب می‌توانید صفحاتی تولید کنید که تمامی سیستم‌های شما را به صورت همزمان نظارت می‌کنند.

@ENDFOR@

به یک بلوک FOREACHUPS پایان می‌دهد.

@IFSUPP var@*

بلوکی را آغاز می‌کند که فقط در صورت پشتیبانی متغیر var توسط یوپی‌اس جاری چاپ خواهد شد. این دستور عموماً برای جلوگیری از نمایش پیام‌های "not supported" با اجتناب کامل از فراخوانی برچسب و متغیر به کار می‌رود.

@IFEQ var value@

بلوکی را آغاز می‌کند اگر مقدار بازگردانده‌شده از متغیر var با value مطابقت داشته باشد.

نکته
می‌توانید از @IFEQ upsstats.use_celsius (0|1)@ برای بررسی تنظیم فعلی کلید تغییر وضعیت @TEMPC@ یا @TEMPF@ استفاده کنید.

@IFBETWEEN varlow varhigh varvalue@

بلوکی را آغاز می‌کند اگر مقدار بازگردانده‌شده توسط متغیر varvalue بین مقادیر بازگردانده‌شده توسط متغیرهای varlow و varhigh باشد.

@ELSE@

اگر دستور IF قبلی مطابقت نداشت، به جای آن این بخش را اجرا می‌کند.

@ENDIF@

به یک بلوک IF/ELSE پایان می‌دهد.

اگرچه تجزیه‌کننده تا حدودی محدود است، اما همچنان امکان ساخت عبارات نسبتاً پیشرفته وجود دارد. کلید دستیابی به این هدف، این واقعیت است که چند دستور کنترل بلوک با یکدیگر AND می‌شوند. این ساختار با یک مثال شرح داده شده است (مثال‌های بیشتر در upsstats.html موجود است).

@IFSUPP ambient.humidity@
@IFSUPP ambient.temperature@
این یوپی‌اس هم دمای محیط و هم رطوبت محیط را می‌شناسد.
@ELSE@
@IFSUPP ambient.humidity@
این یوپی‌اس فقط رطوبت محیط را می‌شناسد.
@ELSE@
@IFSUPP ambient.temperature@
این یوپی‌اس فقط دمای محیط را می‌شناسد.
@ELSE@
این یوپی‌اس چیزی نمی‌داند، چه آزاردهنده.
@ENDIF@

@NUT_UPSSTATS_TEMPLATE [args]@

فایل قالب الزاماً باید دقیقاً با @NUT_UPSSTATS_TEMPLATE@ یا @NUT_UPSSTATS_TEMPLATE Some text@ آغاز شود تا upsstats.cgi(8) وادار به نمایش فایل‌های دلخواه نشود.

در حال حاضر این دستور و آرگومان‌های آن نادیده گرفته می‌شوند؛ قالب‌های ارائه‌شده همراه با NUT از مقادیر آرگومان "default" و "single" عملاً به عنوان توضیحاتی برای اشکال‌زدایی و عیب‌یابی استفاده می‌کنند.

@UPSSTATSPATH filename@

شناسه URI برای برنامه upsstats.cgi(8) که در ارجاعات HTML قرار می‌گیرد. حالت پیش‌فرض نام برنامه است که آن را به پیوندی نسبی با صفحه در حال نمایش در مرورگر تبدیل می‌کند.

ممکن است لازم باشد پسوند نام فایل برنامه مختص به پلتفرم را نیز شامل شود، مانند @UPSSTATSPATH upsstats.cgi.exe@

@UPSIMAGEPATH filename@

شناسه URI برای برنامه upsimage.cgi(8) که در ارجاعات HTML قرار می‌گیرد. حالت پیش‌فرض نام برنامه است که آن را به پیوندی نسبی با صفحه در حال نمایش در مرورگر تبدیل می‌کند.

ممکن است لازم باشد پسوند نام فایل برنامه مختص به پلتفرم را نیز شامل شود، مانند @UPSIMAGEPATH upsimage.cgi.exe@

@AMBTEMP@

درج دمای محیط در مقیاس دمایی فعلی.

@DATE format@

درج تاریخ و زمان فعلی. رشته قالب‌بندی به strftime ارسال می‌شود، بنابراین تقریباً هر قالبی امکان‌پذیر است. برای مقادیر مجاز به strftime(3) مراجعه کنید.

@DEGREES@

درج نویسه موجودیت برای درجه (°) و سپس C یا F بسته به مقیاس دمای فعلی.

@HOST@

درج شناسه میزبانی که نظارت می‌شود، مانند myups@localhost.

@HOSTDESC@

درج شرح میزبان از hosts.conf(5).

@HOSTLINK@

درج یک پیوند HTML به upsstats.cgi(8) در حالی که متغیر "host" روی یوپی‌اس جاری تنظیم شده است. این دستور تنها درون یک بلوک FOREACHUPS کاربرد دارد.

@TREELINK [Link text]@

درج یک پیوند HTML به upsstats.cgi(8) در حالی که متغیر "host" روی یوپی‌اس جاری تنظیم شده و "treemode" برای نمایش تمام نقاط داده به صورت یک صفحه HTML فعال است. این دستور در وهله اول درون یک بلوک FOREACHUPS مفید است، اما به عنوان پاورقی در upsstats-single.html نیز کاربرد دارد. در صورتی که "Link text" ارائه نشود، مقدار پیش‌فرض آن "All data" خواهد بود.

@TREELINK_JSON [Link text]@

درج یک پیوند HTML به upsstats.cgi(8) در حالی که متغیر "host" روی یوپی‌اس جاری تنظیم شده و "treemode" برای نمایش تمام نقاط داده به صورت یک سند JSON فعال است. این دستور در وهله اول درون یک بلوک FOREACHUPS مفید است، اما به عنوان پاورقی در upsstats-single.html نیز کاربرد دارد. در صورتی که "Link text" ارائه نشود، مقدار پیش‌فرض آن "JSON" خواهد بود.

@IMG varname @

درج یک تگ IMG SRC به upsimage.cgi(8) برای یکی از این متغیرهای وضعیت:

battery.charge

شارژ باتری — بر حسب درصد

battery.voltage

میزان شارژ باتری بر حسب ولت

input.frequency

فرکانس برق ورودی (هرتز)

input.voltage

ولتاژ برق ورودی

input.L1-L2.voltage

ولتاژ ورودی، L1-L2 (سه فاز)

input.L2-L3.voltage

ولتاژ ورودی، L2-L3 (سه فاز)

input.L3-L1.voltage

ولتاژ ورودی، L3-L1 (سه فاز)

output.frequency

فرکانس برق خروجی (هرتز)

output.voltage

ولتاژ خروجی (از یوپی‌اس)

output.L1-L2.voltage

ولتاژ خروجی، L1-L2 (سه فاز)

output.L2-L3.voltage

ولتاژ خروجی، L2-L3 (سه فاز)

output.L3-L1.voltage

ولتاژ خروجی، L3-L1 (سه فاز)

output.L1.power.percent

بار یوپی‌اس، L1 (سه فاز)

output.L2.power.percent

بار یوپی‌اس، L2 (سه فاز)

output.L3.power.percent

بار یوپی‌اس، L3 (سه فاز)

ups.load

بار یوپی‌اس — بر حسب درصد

ups.temperature

دمای یوپی‌اس

بخش extra جایی است که می‌توانید تعاریف اضافی را در آن قرار دهید. در حال حاضر تعاریف معتبر، رنگ‌ها برای بخش‌های مختلف نوارهای رسم‌شده توسط upsimage.cgi(8) هستند. نام‌های مجاز رنگ عبارتند از:

back_col

رنگ پس‌زمینه

scale_num_col

رنگ شماره‌های مقیاس

summary_col

رنگ خلاصه (عدد در پایین)

ok_zone_maj_col

رنگ مقیاس اصلی برای ناحیه عادی ("ok")

ok_zone_min_col

رنگ مقیاس فرعی برای ناحیه عادی ("ok")

neutral_zone_maj_col

رنگ مقیاس اصلی برای ناحیه خنثی

neutral_zone_min_col

رنگ مقیاس فرعی برای ناحیه خنثی

warn_zone_maj_col

رنگ مقیاس اصلی برای ناحیه هشدار

warn_zone_min_col

رنگ مقیاس فرعی برای ناحیه هشدار

bar_col

رنگ نوار در وسط

تمام رنگ‌ها سه‌تایی‌های هگزادسیمال هستند — مانند 0xff0000 برای قرمز، 0x00ff00 برای سبز و 0x0000ff برای آبی.

مثال‌ها:

@IMG battery.charge@
@IMG battery.charge back_col=0xff00ff bar_col=0xaabbcc@
@IMG input.voltage ok_zone_maj_col=0x123456@

@REFRESH@

درج جادوی هدر META برای تازه‌سازی صفحه در صورتی که این متغیر توسط مرورگر تنظیم شده باشد. این دستور باید در بخش HEAD صفحه قرار گیرد.

@STATUS separator@, @STATUS@

گسترش اختصارات در متغیر ups.status — عبارت OL به "On line"، عبارت OB به "On battery" و موارد دیگر تبدیل می‌شود. مقادیر گزارش‌شده توسط جداکننده اختیاری مشخص‌شده جدا می‌شوند (<br/> اگر مشخص نشده باشد)، که از نویسه بعدی پس از "STATUS<space>" آغاز می‌شود (به عنوان مثال، یک دستورالعمل @STATUS @ ممکن است برای اجتناب از هرگونه جداسازی استفاده شود، یا @STATUS @ برای جداسازی با فاصله).

@STATUSCOLOR@

درج سه‌تایی‌های رنگ قرمز، سبز یا زرد بسته به شدت وضعیت فعلی یوپی‌اس. عملیات عادی سبز است، هشدارهایی مانند تقویت یا کاهش ولتاژ (trim/boost) یا "off" زرد هستند، و رویدادهای دیگر مانند کار روی باتری یا باتری ضعیف قرمز هستند.

@VAR varname@

درج مقدار فعلی متغیر وضعیت varname در میزبان تحت نظارت، یا عبارت "Not supported".

@RUNTIME@

درج زمان کارکرد فعلی، در قالب hh:mm:ss.

@TEMPC@

استفاده از مقیاس سلسیوس برای داده‌های دما (پیش‌فرض).

@TEMPF@

استفاده از مقیاس فارنهایت برای داده‌های دما.

@UPSTEMP@

درج دمای یوپی‌اس در مقیاس فعلی.

@BATTTEMP@

درج دمای باتری در مقیاس فعلی.

@UTILITYCOLOR@

منسوخ شده است. به جای آن از IFBETWEEN استفاده کنید (مثال موجود در upsstats.html را ببینید).

@VERSION@

درج شماره نسخه نرم‌افزار.

upsstats.cgi(8) همچنین فایلی به نام upsstats-single.html را در صورت فراخوانی با مقدار host= تنظیم‌شده در URL باز خواهد کرد. آن فایل از همان قوانین و تکنیک‌های مستندشده در اینجا استفاده می‌کند.

upsstats.cgi(8), upsimage.cgi(8)

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

06/21/2026 Network UPS Tools 2.8.5