Выполнение команды на удалённом хосте ESXi по ssh

Заметка решает сразу несколько задач:

  1. Подключение по ssh к удалённому хосту без ввода пароля (в данном случае удалённый хост — ESXi 6.7, на котором не поддерживается авторизация ssh по ключам в принципе).
  2. Выполнение команды на удалённом хосте.
  3. Отправка вывода результата с удалённого хоста себе на почту.

Все действия выполняются на одном и том же хосте (т.е. локально):

Создаём файл, содержащий пароль ssh удалённого хоста:

echo "пароль" >> /root/mysecret

Обязательно убеждаемся, что права доступа к этому файлу есть только у вас:

chmod 600 /root/mysecret

Убеждаемся, что у нас есть sshpass. Если нет — устанавливаем (для Centos/RHEL из репозиториев extras или epel):

rpm -qa |grep sshpass
yum -y install sshpass

Собственно выполняем команду:

/usr/bin/sshpass -f /root/mysecret ssh root@remotehost "/opt/smartstorageadmin/ssacli/bin/ssacli ctrl all show config" |mail -s "HPSA test" -r "fromaddress@ramses2000.net" toaddress@ramses2000.net

Где:
remotehost — удалённый хост
/opt/smartstorageadmin/ssacli/bin/ssacli ctrl all show config — команда, выполняемая на удалённом хосте
HPSA test — тема отправляемого с выводом команды письма
fromaddress@ramses2000.net и toaddress@ramses2000.net — адреса отправителя и получателя соответственно

Запись опубликована в рубрике Без рубрики с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий