У меня сервер 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 или подобное.