У меня есть 3 сервера, один NAS Qnap и 2 Rpi3, который управляет видеонаблюдением, некоторым основным domotics и так один.
Я только что настроил один сервер для контроля UPS, чтобы смочь понять, когда это - время для завершения работу серверов, потому что батарея UPS заканчивается.
Мои вопросы просты: существует ли способ отправить команду завершения работы на серверы, не входя в систему через SSH?
Я хотел бы за сервер, который контролирует UPS для отправки, при необходимости, завершения работы к другим двум серверам без входа в систему.
Действительно ли это возможно? Какой-либо протокол или во всяком случае еще?
Спасибо за помощь, Daniele
По-моему, ssh
лучший способ состоит в том, чтобы сделать это. Можно настроить его так, чтобы Вы не отправляли пароль во время входа в систему. Можно скопировать локальный ssh ключ к серверу так, чтобы при отправке команды ssh, не было никакого требуемого пароля.Примечание: Это работает с любым входом в систему на удаленном хосте включая корень.
ssh-copy-id user@server
Вы изменились бы user
в вышеупомянутой команде любому пользователю может выполнить завершение работы. Чтобы сделать корень, это было бы ssh-copy-id root@server
.
Когда копия ssh завершена, затем необходимо смочь отправить команды без запроса входа в систему пароля.
Затем в Вашем сценарии или что когда-либо отправляет команду на удаленный сервер, на который это было бы похоже так:
ssh root@server 'shutdown -h now'
Не было бы никакого требуемого пароля, и сервер завершит работу.
Надеюсь, это поможет!
Вы могли (это быть простым вопросом программирования Perl), пишут сценарий Perl, чтобы слушать определенный порт, и после получения правильного сообщения, сделать завершение работы. Начните с примеров в "книге" Perl Программирования (Книга Camel!) см. Главу 15.