Freebsd вимикання харчування з командного файлу windows

У більшості випадків кожен стієчний джерело безперебійного живлення (UPS) обслуговує кілька серверів, при цьому він має всього один керуючий канал, який дозволяє контролювати наявність напруги в мережі і ємність акумуляторних батарей за допомогою спеціального програмного забезпечення. Як забезпечити коректне завершення роботи всіх серверів, якщо частина з них працює під управлінням FreeBSD, а програмне забезпечення UPS'а призначене для Windows?

Постановка задачі

Початкові дані

Для того, щоб все, що описано нижче, працювало коректно, на Вашому сервері повинна використовуватися операційна система FreeBSD версії 4.xx або вище, а також на ньому повинна бути налаштована служба SSH з аутентифікацією по публічному ключу. Підійде і аутентифікація по паролю, але вона має масу багаторазово описаних недоліків. Природно, материнська плата сервера повинна підтримувати функції автоматичного керування живленням (підтримка таких функцій є у переважної більшості сучасних материнських плат).

Додавання підтримки APM в FreeBSD старих версій

Додавання підтримки APM (Advanced Power Management) необхідно робити тільки при наявності серверів з FreeBSD версії нижче 5.0, тому що починаючи з версії 5.0, операційна система містить автоматично завантажується модуль ядра, що забезпечує підтримку ACPI (Advanced Configuration and Power Interface) - більш універсального механізму управління ресурсами і електроживленням. Для додавання підтримки APM слід:
1. Активувати в BIOS опцію ACPI Support Enabled;
2. Додати в файл конфігурації ядра рядок device apm0 і пересобрать ядро;
3. Додати в файл /etc/rc.conf рядок apm_enable = "YES";
4. Перезавантажити систему.
Після виконання перерахованих дій команда shutdown -p now повинна приводити до завершення роботи системи з вимиканням харчування.

Установка і настройка sudo

За замовчуванням команди зупинки системи можуть виконуватися тільки суперкористувачем root. проте, з точки зору безпеки ні в якому разі не можна дозволяти йому віддалений доступ до сервера. Для забезпечення можливості зупинки системи з віддаленого комп'ютера звичайним користувачем підійде утиліта sudo. Найкраще встановити її з портів:

Віддалене завершення роботи

Щоб з'єднатися з сервером та виконання необхідної команди я рекомендую використовувати утиліту plink з безкоштовного пакету PuTTY. Вище я вже сказав, що підключення до сервера з FreeBSD буде виконуватися по протоколу SSH з аутентифікацією користувача з публічного ключу. В такому випадку команда завершення роботи прийме такий вигляд (папка, що містить утиліту plink, має бути присутня у змінній оточення PATH):

У перший раз слід виконати дану команду в інтерактивному режимі, щоб підтвердити справжність віддаленого сервера з FreeBSD вручну.

висновок

Виконавши дії, описані в даній статті, Ви більше ніколи не будете переживати про цілісність файлових систем підтримуваних Вами серверів з операційною системою FreeBSD у випадках несподіваного відключення електроживлення.