Назад | Перейти на главную страницу

получать информацию с серверов x по ssh с помощью сценария bash

У меня сервер Master,SlaveA,SlaveB,SlaveC, и хотите получить, например. информацию о пространстве с сервера, выполнив один сценарий bash на главном сервере.

Как я могу это сделать?

--case--
192.168.1.1 - Master
192.168.1.10 - A
192.168.1.11 - B
192.168.1.12 - C

Получить df на рабов.

--ex. output---
==Slave A==
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             7222500   3909896   2945720  58% /
==Slave B==
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             4222500   3909896   5744447  98% /
==Slave C==
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             1222500   509896   xxxxxxxx  50% /

Большое спасибо! ДеЛол

Поместите нужные команды в быстрый сценарий на мастере и запустите сценарий следующим образом:

ssh 192.168.1.10 < script.sh

Это выполняет команды, содержащиеся в script.sh на удаленном хосте, без копирования сценария в удаленную систему.

Также см: Документирование сведений о сервере

Для ограниченного списка клиентов у меня есть функция bash в моем ~/.profile:

ch () {

   echo host1
   ssh root@host1 $@
   echo host2
   ssh root@host2 $@
}

Я называю это так:

ch df

Его можно легко расширить до списка клиентов, считываемых из массива или файла конфигурации.

Другой вариант - использовать что-то вроде cssh или подобное.