shell腳本檢查是否存在tun0虛擬網卡,若不不存在服務器更改port,並重啟服務器,客戶端修改port,並重新啟動客戶端


openvp 客戶端 /home 目錄下各腳本文件名

[root@jira home]# ls
  openvpn_server_restart.sh  openvpn_tunnel_monitor.sh  

  

openvpn_tunnel_monitor.sh 為死循環腳本來檢測 tun0 網卡是否存在,若不存在,對服務器端 openvpn server 進行操作,更換port並重啟openvpn 服務,同時更改openvpn 客戶端port端口對應服務器port端口,同時重新啟動客戶端

 

cat openvpn_tunnel_monitor.sh 

while [ 1 ]
 
do
  tun0_route=`ifconfig|grep -ci "tun0"`
   
  if [ $tun0_route -eq 0 ];then
   
    echo "openvpn tunnel is down ,need do the restart operation." >> /tmp/openvpn_tunnel.log

    ssh root@47*****27 'bash -x -s' < /home/openvpn_server_restart.sh

    scp root@47******27:/etc/openvpn/server.conf  /home
    server_port=`cat /home/server.conf|grep -i "port"|grep -v "^#"|awk '{print $2}'`
    sed -i "s@remote.*@remote 47*******27 $server_port@" /etc/openvpn/fanqiang001.conf
    
    PID=`ps -fe|grep fangqiang001|grep -v grep|awk '{print $2}'`

    if [ "$PID" ];then
    ps -fe|grep fangqiang001|grep -v grep|awk '{print $2}'|xargs kill -9 
    echo "old openvpn client  process  is killed" >> /tmp/openvpn_tunnel.log
    fi
 
   source /etc/profile
   cd /etc/openvpn
   nohup /usr/sbin/openvpn  --cd /etc/openvpn --config fanqiang001.conf --log-append /var/log/openvpn.log  >> nohup.out 2>&1 &

   sleep 5
   new_pid=`ps -fe|grep openvpn|grep -v grep|awk '{print $2}'`
   echo $new_pid

   if [ "$new_pid" ];then
          echo  " openvpn client  process  started success  !" >> /tmp/openvpn_tunnel.log
   fi

         
   
  fi
 
  sleep 600
done

  

openvpn_server_restart.sh 腳本主要重新啟動openvpn server端

#!/bin/bash

server_port=`cat /etc/openvpn/server.conf|grep -i "port"|grep -v "^#"|awk '{print $2}'`

server_port=$((server_port+1))


sed -i "s@port.*@port $server_port@" /etc/openvpn/server.conf

service openvpn restart 

  

配置后台運行腳本

sh  openvpn_tunnel_monitor.sh & > /dev/null 2>&1

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM