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

  

shell脚本检查是否存在tun0虚拟网卡,若不不存在服务器更改port,并重启服务器,客户端修改port,并重新启动客户端的更多相关文章

  1. shell脚本检查域名证书是否过期

    最近公司的域名准备过期了,防止用户访问的时候出现异常,所以最近我们准备替换相关网站证书为最新的. (一般HTTPS证书有效期为1年,证书过期后或者该证书不是该域名的有效证书时,在浏览器中访问会出现如下 ...

  2. Shell脚本检查memcache进程并自己主动重新启动

    修正版: #!/bin/sh #check memcache process and restart if down mm_bin="/usr/local/bin/memcached&quo ...

  3. shell脚本 检查mysql节点数据一致性

    一.简介 源码地址 日期:2018/4/12 介绍:参考pt checksum思想改写,可以定制化的检查随意两个mysql节点的数据一致性. 功能: 检查随意两个几点的数据一致性 支持并发检查,基于库 ...

  4. 我从其他人的Shell脚本中学到的

    我从其他人的Shell脚本中学到的 2013/08/20 | 分类: 程序员 | 2 条评论 | 标签: SHELL, 脚本 分享到:17 本文由 伯乐在线 - 伯乐在线读者 翻译自 Fizer Kh ...

  5. 如何使用 Shell 脚本来查看多个服务器的端口是否打开?

    我们在进行服务器配置的时候,经常要查看服务器的某个端口是否已经开放.如果服务器只有一两台的话,那很好办,只需要使用 nc 命令一个个查看即可. 但是,如果你的服务器是个集群,有很多台呢?那如果还一个个 ...

  6. shell脚本一条命令直接发送http请求(xjl456852原创)

    我们知道nc命令是一个网络工具.可以连接tcp/udp.也能模拟发送http请求. 现在介绍通过shell脚本,一条命令直接发送http请求. 命令如下,可以对下面的地址等信息自行修改: #!/bin ...

  7. linux下使用shell脚本自动化部署项目

    在Java开发项目时经常要把正在开发的项目发布到测试服务器中去测试,一般的话是要把项目先打成war包,然后把war包发布到服务器中,关闭服务器, 最后重新启动服务器,虽然这过程不是很繁琐,但如果是多个 ...

  8. VMware虚拟网卡设置问题

    具体操作过程如下: (1)为虚拟机添加虚拟网卡 (2)添加后会自动分配子网ip,不用修改.点击应用,确定. (3)添加完成后本机的网络上会多出一个网络适配器,根据虚拟机器中的ip设置此ip地址, 这里 ...

  9. shell脚本自动部署及监控

    一.shell脚本部署nginx反向代理和三个web服务 1 对反向代理服务器进行配置 #!/bin/bash #修改用户交互页面 用户输入参数执行相应的参数 #安装epel扩展包和nginx fun ...

随机推荐

  1. 基于变分自编码器(VAE)利用重建概率的异常检测

    本文为博主翻译自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立 ...

  2. php的快速排序

    <?php     function quicksort($str){         if(count($str)<=1) return $str;//如果个数不大于一,直接返回     ...

  3. POJ3268-Silver Cow Party-(Dijstra)

    题意:有n只牛聚会,每只牛的家有编号,指定去一只牛家里聚会.牛很懒,走最短路去,花费时间最少.而回来的时间又不相同,问那只走最远的牛走了多久? 解题:去某只牛家里聚会,单源求最短路,来回时间不同,用有 ...

  4. Atcoder Beginner Contest 138 简要题解

    D - Ki 题意:给一棵有根树,节点1为根,有$Q$次操作,每次操作将一个节点及其子树的所有节点的权值加上一个值,问最后每个节点的权值. 思路:dfs序再差分一下就行了. #include < ...

  5. 单点登录的实践demo

    https://github.com/deadzq/web-sso-server 统一认证中心 https://github.com/deadzq/web-system-client1 用户客户端 结 ...

  6. 3495: PA2010 Riddle 2-sat 前缀优化

    3495: PA2010 Riddle 2-sat 前缀优化 链接 bzoj 思路 不想说啥了,看hwim的吧,我去睡觉了zZ. 代码 /******************************* ...

  7. APIO2019 游记

    \(\text {Cu}\)滚粗了,滚粗选手不配拥有游记.

  8. COCI 2015、2016 1st round 题解(官方)

    官方题解: 官方代码: Code-KARTE: #include <cstdio> #include <iostream> #include <cstring> u ...

  9. FDQuery Out of memory

    4万行记录 FDQuery查询 Out of memory sql server 可以查询成功 First chance exception at $7505D722. Exception class ...

  10. 实现mysql的读写分离(mysql-proxy)____2

    mysql-proxy简介 MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力. 使用mysql-proxy实现mysql ...