Script para reinicialização de rede

2

Às vezes, a rede falha completamente no meu servidor por compartilhamentos de samba (por exemplo, eu poderia conectar-me ao servidor via ssh e os compartilhamentos do samba estavam indisponíveis). Já que não há solução de trabalho para consertá-lo (descrição completa aqui ) Eu escrevi um pequeno script que reinicia a rede e acho que ajudaria a estabelecer conexão. Caso eu faça systemctl restart network ele funciona. Então eu preciso que ele tenha que reiniciar a rede automaticamente.

A lógica é que, se o gateway não estiver disponível para o ping (* 1.121), ele verificará outro host na LAN. Então, se ele não receber resposta do segundo host, ele executará systemctl restart network . Alguém pode rever e adicionar / remover algo ou propor outra maneira de lidar com isso?

#!/bin/bash

ADDR1="192.168.1.101";
ADDR2="192.168.1.5";
ACCS1=$(ping -c 1 -s 1 -w 1 $ADDR1 | grep time | awk -F ',' '{print $2}' | awk '{print $1}');
ACCS2=$(ping -c 1 -s 1 -w 1 $ADDR2 | grep time | awk -F ',' '{print $2}' | awk '{print $1}');


if [[ $ACCS1 == 0* ]];
        then
                if [[ $ACCS2 == 0* ]];
                                echo "Host $ADDR2 is unavailable" >> $HOME/blackout_time.log
                        then
                                systemctl restart network
                                echo "Netwotk restart time by script1 - $(date +%Y-%m-%d_%k:%M:%S)" >> $HOME/blackout_time.log
                                sleep 20
                        fi
        fi

Obrigado antecipadamente

    
por Raphael 16.11.2016 / 15:22

1 resposta

3

Em uma linha compacta:

ping 192.168.1.121 -c1 -s1 -w1 -q || ping 192.168.1.189 -c1 -s1 -w1 -q || systemctl restart network
    
por 16.11.2016 / 15:51