Скрипт зацикливания, перенаправление в файл - PullRequest
0 голосов
/ 18 мая 2018

Итак, у меня есть сценарий BASH, и я хочу обратиться к серверам.Проверьте используемый% каталога.Если он выше моего установленного порога (90), напечатайте это имя сервера в другом файле на сервере, с которого был запущен скрипт.

Что он делает, это дважды печатает первое имя сервера нафайл выглядит так:

server1
server2

Вот мой сценарий ... Я не понимаю, почему он будет повторяться в цикле к первому серверу дважды

#!/bin/bash

SERVERS="server1
server2"

for i in $SERVERS; do

        ssh $SERVERS "
        df -h | grep var | awk '{print \$4}' | sed 's/%//g' > /home/user/space.txt
        RESULTS=\$(grep -E "1[5-9]" /home/user/space.txt)
        THRESHOLD=90
        if [[ \$RESULTS -lt \$THRESHOLD ]]; then
        exit 1;
        elif [[ \$RESULTS -gt \$THRESHOLD ]]; then
        hostname;
        fi
        " >> /home/user/problem.txt
done

1 Ответ

0 голосов
/ 18 мая 2018

Попробуйте,

#!/bin/bash

SERVERS="server1
 server2"

for i in $SERVERS; do

    ssh "$i" "
    df -h | grep var | awk '{print \$4}' | sed 's/%//g' > /home/user/space.txt
    RESULTS=\$(grep -E "1[5-9]" /home/user/space.txt)
    THRESHOLD=90
    if [[ \$RESULTS -lt \$THRESHOLD ]]; then
    exit 1;
    elif [[ \$RESULTS -gt \$THRESHOLD ]]; then
    hostname;
fi
    " >> /home/user/problem.txt
done
...