Preciso de ajuda para executar um script constantemente para uma conexão vpn. como contornar o ping

0

Eu sou um daqueles que precisam usar vpnc para uma conexão com uma rede. Eu tentei o exemplo de muitos tutoriais como isto , este e isso sem sucesso. Eu sei decidiu escrever um pequeno script para reconectar após a reconexão. meu shell script é tão ruim que eu não sei como registrar o que acontece na caixa. Além disso, eu acabei de perceber que o ping está desabilitado na máquina que eu preciso conectar. Como posso contornar isso? aqui está o meu script que é adicionado ao crontab para ser executado a cada 5 minutos

#!/bin/bash

HOST=" 192.168.0.18"

pinging(){
    ping -c6 $HOST
    return $?
}


pinging
RESULT=$?  

case $RESULT in 
    0)
            #ping OK everything is fine
    ;;      
    1) 
            # no reply, meaning the host down then reconnect
            /usr/sbin/vpnc configname
    ;;      
    2)
           ## Misc. ping errors, 
            # don't know what to do here. how do i log this?
   ;;

esac

para recapitular, preciso:

  1. Pode dar a volta por aí. Outras alternativas?

  2. Ser capaz de registrar o que acontece a cada corrida ou assim

Alguém pode me ajudar a conseguir isso?

    
por black sensei 04.03.2013 / 10:08

3 respostas

1

Eu provavelmente olharia para algo tão simples como:

#!/bin/bash
pgrep vpnc
STATUS=${?}

if [ ${STATUS} -ne 0 ]; then
    /usr/sbin/vpnc configname
fi

Isso iniciará o vpnc, caso ainda não esteja em execução.

    
por Cry Havok 04.03.2013 / 18:36
0

de googling e readind eu decidi basear o teste em telnet, pois é assim que eu testo manualmente na caixa. Abaixo está minha abordagem. Por enquanto, tudo bem. Existe alguma ferramenta para fazer meu registro diário ou algo assim?

Sinta-se à vontade para fazer sugestões. Obrigado

#!/bin/bash
HOST="192.168.0.18" 
    LOGFILE=/var/log/vpnc/configname.log
    exec 3>/dev/tcp/${HOST}/8888
    if [ $? -eq 0 ]
    then
            echo "$(date +%Y-%m-%d:%T) :Telnet accepting connections" | tee -a $LOGFILE 
    else
            echo "$(date +%Y-%m-%d:%T) Telnet connections not possible" |tee -a $LOGFILE
            echo "$(date +%Y-%m-%d:%T) Reconnecting to telnet" | tee -a $LOGFILE
            pid=$(pidof vpnc)
            if test -z "${pid}" 
                    then
                            echo "$(date +%Y-%m-%d:%T) pid is null" | tee -a $LOFGILE
                            echo "$(date +%Y-%m-%d:%T) restarting vpnc" | tee -a $LOGFILE
                            /usr/sbin/vpnc configname | tee -a $LOGFILE
                    else
                            echo "$(date +%Y-%m-%d:%T) vpnc is running but not connected. killing ${pid}" | tee -a $LOFGILE
                            kill -9 ${pid}
                            echo "$(date +%Y-%m-%d:%T) restarting vpnc" | tee -a $LOFGILE
                            /usr/sbin/vpnc configname | tee -a $LOGFILE
                            echo "$(date +%Y-%m-%d:%T) vpnc running with pid: $(pidof vpnc)" | tee -a $LOGFILE

              fi
       fi   
    
por black sensei 07.03.2013 / 08:46
0

Eu escrevi algo parecido por algum tempo e ele se transformou em um projeto de estimação. É um script 'VPN companion' (sim, acabei de criar essa frase) que verifica ativamente o sistema para determinar se algo está errado (por exemplo, VPN cai).

link

É muito bem comentado se você está procurando algo para modificar para o seu propósito.

    
por rsmithee 09.12.2013 / 02:09