Мне нужна помощь, чтобы запустить скрипт постоянно для подключения VPN. как обойти пинг

Я один из тех, кому нужно использовать vpnc для соединения с сетью. Я попробовал так много примеров учебников, как , это , , это и , это , но безуспешно. Я знаю, решил написать небольшой скрипт для переподключения после переподключения. Мой сценарий оболочки настолько плох, что я не знаю, как записать, что происходит на коробке. Помимо этого, я только что понял, что пинг отключен на машине, к которой мне нужно подключиться. Как я могу обойти это? вот мой сценарий, который добавляется в crontab для запуска каждые 5 минут

#!/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

, поэтому для подведения итогов мне нужно:

  1. . , Другие альтернативы?

  2. Уметь записывать, что происходит при каждом запуске или около того

Может ли кто-нибудь помочь мне достичь этого?

0
задан 4 March 2013 в 15:42

3 ответа

Некоторое время назад я написал нечто подобное, и это как бы превратилось в проект для домашних животных. Это сценарий «VPN-компаньон» (да, я только что придумал эту фразу), который активно проверяет систему, чтобы определить, что-то пошло не так (например, VPN пропадает).

http://code.google.com/p/ipcheck/source/browse/ipcheck.sh

Это довольно хорошо прокомментировано, если вы ищете что-то для изменения твоя цель.

0
ответ дан 4 March 2013 в 15:42

Вероятно, я бы посмотрел на что-то простое:

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

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

. Затем он запустит vpnc, если он еще не запущен.

0
ответ дан 4 March 2013 в 15:42

из Google и Readind я решил основывать тестирование на telnet, так как именно так я тестирую вручную на коробке. Ниже мой подход. Все идет нормально. Есть ли какой-нибудь инструмент, чтобы сделать мой журнал ежедневным или что-то подобное?

Не стесняйтесь делать предложения. Спасибо

#!/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   
0
ответ дан 4 March 2013 в 15:42

Другие вопросы по тегам:

Похожие вопросы: