Linux Centos 6: Reinicie o serviço de rede após o ping perdido

4

Meu sistema operacional é Linux Centos 6 . Reinicie o serviço de rede após o ping perdido

Basicamente, eu preciso de um observador ou um script que detecte nenhum ping para / de outro endereço IP e execute service network restart após cada minuto.

Eu preciso reiniciar a rede por vários motivos.

    
por user3265051 01.04.2014 / 02:27

1 resposta

3

Salve este script em um arquivo e torne-o executável. Em seguida, execute-o em um cronjob.

Abra o seu editor favorito e copie este script:

#!/bin/bash

# cron script for checking lan connectivity

# Ping count is set aggressively to 1, increase depending what you want.
PING_COUNT=1
#I'm assuming ping is installed.
PING="/bin/ping"


#Find the gateway IP address
GATEWAY_IP='ip route | grep default | cut -d " " -f 3'
# ping test
$PING -n -c "$PING_COUNT" "$GATEWAY_IP" &>/dev/null

if [ "$?" -ge 1 ]
then
    # This will log a message in system log (see manpage).
    logger "Network access DOWN"

    service network restart
else
    logger "Network access OK"
fi

Salve o arquivo e nomeie-o como checklan por exemplo. Torne-o executável por tipo no cmdline:

chmod +x checklan

Como root ou usando o sudo, mova o arquivo para / usr / local / bin:

mv checklan /usr/local/bin

Usando sudo ou root, abra um novo arquivo em /etc/cron.d

vi /etc/cron.d/netcheck

Pressione i Copie a seguinte linha:

*/10 * * * * root /usr/local/bin/checklan

Salve a alteração digitando : x

Reinicie o cron como root ou usando o sudo:

service crond restart

Em seguida, o script deve ser executado a cada 10 minutos. NOTA: Por favor, leia na Internet sobre cron para entender a sintaxe. Você pode aumentar a taxa até a cada minuto.

Verifique / var / log / messages ou / var / log / syslog para ver se está funcionando:

tail -f /var/log/messages

Se funcionar, você verá algo assim:

Apr  1 20:04:01 <hostname> logger: checklan OK
    
por 01.04.2014 / 02:51