Вопрос неясен, так как некоторая информация отсутствует. Давайте просто попробуем с тем, что у нас есть ... Предположим, что IP-адрес 10 сервера - 192.168.1.11..192.168.1.20:
#!/bin/bash
for host in 192.168.1.{11..20}
do
echo "#############################################################################"
echo "$host:"
# check if host is alive, if positive, then execute command in remote server
ssh -q -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet user@$host exit
if [ $? -ne 0 ];then
echo -e "\033[0;101m\033[1;37mOFFLINE\033[0m"
else
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet user@$host "execute_command"
fi
done
Теперь сохраните сценарий оболочки и перенаправьте stdout и stderr в файл журнала.
./script.sh &> log.txt
Как правило, присваивание переменной сценария оболочки следует этому подходу:
variable=value
Чтобы получить доступ к значению, хранящемуся в переменной, вы добавляете перед ним символ $
. Если вы хотите сохранить выходные данные команды, вы должны заменить ls -alh
своей собственной командой запроса:
#!/bin/bash
S1="$(ls -alh)"
echo "$S1"
Попробуйте это,
S1=`mysql -h $IP -u $UserName -p$Password $DBName -e "SELECT COUNT(*) FROM table1" | grep -v COUNT`
echo $S1
где,
IP
, UserName
, Password
и DBName
, где IP-адрес, пользователь, пароль, база данных вашего сервера MySQL.