我需要帮助不断运行脚本以进行 vpn 连接。如何绕过 ping

我需要帮助不断运行脚本以进行 vpn 连接。如何绕过 ping

vpnc我是那些需要使用网络连接的人之一。我尝试了很多教程中的例子,比如没有成功。我知道我决定写一个小脚本来在重新连接后重新连接。我的 shell 脚本很糟糕,我不知道如何记录盒子上发生的事情。除此之外,我刚刚意识到我需要连接的机器上的 ping 被禁用了。我该如何解决这个问题?这是我的脚本,它被添加到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. 能够四处 ping。还有其他选择吗?

  2. 能够记录每次运行发生的情况

有人能帮助我实现这个目标吗?

答案1

我可能会考虑一些简单的事情,例如:

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

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

如果 vpnc 尚未运行,它就会启动它。

答案2

通过谷歌搜索和阅读,我决定基于 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   

答案3

不久前我写过类似的东西,后来它变成了我的小项目。它是一个“VPN 伴侣”脚本(是的,我编造了这个短语),可以主动检查系统以确定是否出了问题(例如 VPN 断开连接)。

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

如果您正在寻找可以为您的目的进行修改的东西,那么它的注释非常好。

相关内容