BASH - skrypt do pingowania komputerów w sieci

Witam. Potrzebuję skryptu, który odpalony na jednym komputerze, będzie pingował co pare minut dwa pozostałe w sieci lokalnej. Jeżeli ping się nie powiedzie do żadnego, komputer powinien się wyłączyć.

Chodzi generalnie o to, że jeżeli 2 pozostałe komputery zdalnie się wyłączą bo padnie zasilanie i jada na UPSie, to za pomocą pinga sprawdzam z pierwszego czy są wyłączone, jeżeli tak…także się wyłącza.

Znalazłem na jednym forum 2 skrypty jednakże mam problem z ich odpaleniem.

#!/bin/bash

FOO=0

until [$FOO -eq 4]; do

if [`ping -c 1 192.168.0.1 | grep from | wc -l` -eq 0]; then

FOO=$[FOO + 1]

else

FOO=0

fi

sleep 15m

done

shutdown -h now

#!/bin/bash

BAR=0

until [$BAR -eq 4]; do

sleep 15m

FOO1=`ping -c 1 IP1 | grep from | wc -l`

FOO2=`ping -c 1 IP2 | grep from | wc -l`

FOO3=`ping -c 1 IP3 | grep from | wc -l`

FOO=$[FOO1 + FOO2 + FOO3]

if [$FOO -eq 0]; then

BAR=$[BAR + 1]

else

BAR=0

fi

done

shutdown -h now

przerobiłem je na moje potrzeby odpalając na kompie coś takiego (Próbowałem na obydwu)

#!/bin/bash

FOO=0

until [$FOO -eq 4]; do

if [`ping -c 1 192.168.100.8 | grep from | wc -l` -eq 0]; then

FOO=$[FOO + 1]

else

FOO=0

fi

sleep 3m

done

shutdown -h now

oraz

#!/bin/bash

BAR=0

until [$BAR -eq 4]; do

sleep 3m

FOO1=`ping -c 1 192.168.100.8 | grep from | wc -l`

FOO2=`ping -c 1 192.168.100.9 | grep from | wc -l`

FOO=$[FOO1 + FOO2]

if [$FOO -eq 0]; then

BAR=$[BAR + 1]

else

BAR=0

fi

done

shutdown -h now

w obydwu przypadkach otrzymuje błedy

w 1 skrypcie

Line 4: [:Brakuje `]’

natomiast w drugim skrypcie mam

Line 3: [:Brakuje `]’

Próbowałem wszelkich kombinacji umiejscowienia -->` w kodzie ale nic nie idzie.

Czy ktoś ma pomysł co tu jest źle?? :confused:

Pozdrawiam i dzieki za odpowiedź

then oraz do przenieś do następnej linii. U mnie czasami powodowało błędy jeżeli then był w tej samej linijce co if.

nie pomogło :confused:

Po ‘]’ daj spację. Ewentualnie umieść wartości podane po ‘-eq’ w apostrofach.

Zakładając, że w sieci masz tylko te 3 komputery, spróbuj tak

#!/bin/bash