Как корректно завершить работу СХД Promise VTRAK M500i при отключении электричества?

Рейтинг:   / 3
ПлохоОтлично 

На работе была поставлена следующая задача: при отключении электричества все серверы должны корректно завершить свою работу и отключиться. И я уже писал подобную заметку, где рассматривал выключение сервера ESXi. Ознакомиться можно тут: 

https://typical-admin.ru/moi-zametki/kak-korrektno-zavershit-rabotu-esxi-pri-otklyuchenii-elektrichestva

Недавно потребовалось сделать такую же работу в другой серверной. А там к одному из серверов подключена СХД Promise VTRAK M500i. Это довольно старая модель СХД, которая сама не умеет мониторить ИБП. Значит выключать её придётся по такому же принципу, как и сервер ESXi в прошлой заметке. Разница лишь в том, что подключаться к СХД придётся по Telnet. Поэтому, первым шагом, надо включить доступ по Telnet на самой СХД. Захожу в Administrative ToolsSoftware ManagementTelnet:

И там запускаю сервис Telnet:

После этого пробую подключиться со своего компа: 

telnet 10.100.100.7 2300 

где 2300 — это порт. Система попросит ввести логин и пароль от Promise. Так это всё выглядит в консоли: 

[adm@fed ~]$ telnet 10.100.100.7 2300
Trying 10.100.100.7...
Connected to 10.100.100.7.
Escape character is '^]'.

-------------------------------------------------------------
Promise VTrak Command Line Interface (CLI) Utility
Version: 2.02.0000.00 Build Date: Jun 21, 2006
Copyright 2006, Promise Technology, Inc. All rights reserved.
-------------------------------------------------------------

Login: administrator
Password: *************

-------------------------------------------------------------
Type help or ? to display all the available commands
Type menu to enter Menu Driven Configuration Utility
-------------------------------------------------------------

administrator@cli>

Теперь, чтобы завершить работу СХД, надо выполнить команду:

shutdown -a shutdown

Система начнёт завершать работу. В документации написано, что ей на это понадобится не менее 2-ух минут. Это надо иметь ввиду. У меня выключение заняло примерно 5 минут.

Теперь встаёт вопрос, как организовать выключение автоматически при низком заряде ИБП. Как и в прошлый раз, для этого понадобится какой-нибудь линуксовый сервер, который будет выключаться параллельно с СХД. Но консольная программка Plink не поможет в этот раз. Ибо есть вот такая проблема:

plink -telnet 10.100.100.7 -P 2300 -l administrator -pw 'mypassword'
plink: the -pw option can only be used with the SSH protocol

Нельзя подключаться к телнету, используя пароль в качестве опции подключения.

На помощь приходит Bash-скрипт, который я взял с этого ресурса:

https://admin-gu.ru/coding/bash/bash-skript-dlya-avtomaticheskogo-telnet-soedineniya-i-vvoda-komand

И немного причесал под себя:

#!/bin/bash

PATH=/sbin:/usr/sbin:/bin:/usr/bin

#Входные данные:
USER="administrator"
PASSWD="mypassword"
LOG="telnet_shutdown.log"
HOSTS="
10.100.100.7
"
for H in $HOSTS
do
echo START SCRIPT: >> $LOG
date +%x-%R >> $LOG
(
sleep 1;
echo -en "$USER\r";
sleep 1;
echo -en "$PASSWD\r";
sleep 1;
echo -en "shutdown -a shutdown\r";
sleep 1;
) | telnet $H 2300 >> $LOG
echo =================================== >> $LOG
done
exit

Обзову этот скрипт, например, telnet_shutdown.sh и положу его в каталог /etc/apcupsd на линуксовом сервере, на котором установлена и настроена программа Apcupsd. Не забываю сделать этот файл исполняемым:

chmod +x telnet_shutdown.sh

Также не забываю установить Telnet, если его нет:

apt-get install telnet

Теперь надо отредактировать файл /etc/apcupsd/apccontrol. В нём надо найти секцию doshutdown и добавить одну строчку. Это должно выглядеть так (выделил зелёным добавленное):

doshutdown)
        echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
        # сначала завершить работу СХД Promise
        /etc/apcupsd/telnet_shutdown.sh
        /bin/sleep 5
        ${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
    ;;

Всё. Теперь линуксовый сервер, увидев, что заряд батареи в ИБП низкий, сначала подключится по Telnet к СХД Promise VTRAK M500i и отправит ему команду завершения работы, затем уже сам завершит работу.

Донаты принимаются на кошельки:

Yoomoney:
4100118091867315

BTC:
bc1qzw9vam8mv6derwscxl0vrnd6m9t2rpjg273mna

ETH / BNB BSC / Polygon MATIC:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

Tron:
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

USDT/USDC в сетях ETH/BSC/Polygon:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

USDT в сети TRX (Tron):
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

LTC:
LRMZaFCSyCT6FUF62WEX1BokWV7v2dh2zo

Doge:
DTEnGLZRps9XaWNtAhchJWSeD4uTNDRxg7

XMR:
4A6uP1WxEc7HktToZFyiJuK6YmjdL8bSn2aY653qPwABhT4Y56iFuedgHcmpvLwWE55u8qkjGc715ZJs761FqedA8gkgznr

TON:
UQAdSPiWIDx2Q1VIeezkUV3s4sNlZM90w2ohSO6bD2-okwgY

You have no rights to post comments

Вы здесь: Home Мои Заметки Как корректно завершить работу СХД Promise VTRAK M500i при отключении электричества?