В отличие от putty, которая создает интерактивный сеанс SSH в Linux или на UNIX-сервере, plink принимает не интерактивную SSH сессию. С использованием Plink мы можем автоматизировать удаленные команды Linux из окна терминала.
Как автоматизировать удаленные команды Linux из окна терминала.
1.Скачать plink
Для автоматизации удаленных команд Linux из окна терминала, вы должны сначала загрузить утилиту Plink в соответствии с вашей архитектурой сервера (32 бит или 64 бит).
2. Установить переменную PATH
После того, как вы скачали Plink, вы не можете просто выполнить Plink, как мы делаем это с putty. Вам нужно установить переменную PATH на терминале Windows, так что она может вызываться из любого места. Чтобы сделать это, следуйте приведенным ниже инструкциям.
- На рабочем столе щелкните правой кнопкой мыши значок Мой компьютер.
- Выберите пункт Свойства из контекстного меню.
- Нажмите Дополнительные параметры системы связи.
- Нажмите Переменные среды.
- Редактировать переменные системы (или New System Variable), Проверьте переменную окружения PATH и добавьте место, где вы загрузили Plink. В моем случае мы скачали по пути «C: \automation\». Поэтому мы добавили в конце строке «; C: \automation\» для переменной PATH, как показано ниже:
3. Базовый синтаксис утилиты командной строки Plink.
plink [options] connection [command]
В приведенном выше синтаксис:
- options – различные варианты Plink.
- connection – Здесь будет информация о соединении сервера Linux, на который вы хотите подключиться.
- command – это команда, которая должна быть выполнена на удаленном сервере Linux. Она является необязательным.
4. Заключительный шаг для автоматизации удаленного Linux из окон терминала
Для демонстрационной цели мы взяли задачу автоматизации установки пароля для пользователя «andreyex» на двух серверах (вы можете взять его на любое количество серверов в соответствии с вашими требованиями).
Server details IP: 192.168.226.121 192.168.226.212 Command to be used for setting an password for user mann echo linuxpassword | passwd --stdin andreyex The above command will set "linuxpassword" as a password for use
Теперь создайте один текстовый файл «server_list.txt» в каталоге C: \automation, которые содержат IP адреса серверов, так что серверы могут быть подключены.
Теперь измените каталог на c:\automation и выполните следующую команду из окна командной строки:
FOR /F "tokens=1,2* delims=," %G IN (C:\automation\server_list.txt) DO plink -ssh root@%G -pw root321 ("echo linuxpassword | passwd --stdin andreyex")
В команде выше мы использовали пользователя root, передавая в качестве параметра -ssh & root321 является паролем для корневого пользователя, указанного параметром -pw. В приведенном выше примере, любезно заключите команду Linux в двойных кавычках.
Выполнение журналов:
c:\automation>FOR /F "tokens=1,2* delims=," %G IN (C:\automation\server_list.txt ) DO plink -ssh root@%G -pw root321 ("echo linuxpassword | passwd --stdin andreyex") c:\automation>plink -ssh root@192.168.226.121 -pw root321 ("echo linuxpassword | passwd --stdin andreyex") Changing password for user andreyex. passwd: all authentication tokens updated successfully. c:\automation>plink -ssh root@192.168.226.212 -pw root321 ("echo linuxpassword | passwd --stdin andreyex") Changing password for user andreyex. passwd: all authentication tokens updated successfully. c:\automation>
Это, как мы можем автоматизировать удаленные команды Linux из окна терминала.