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. python基础知识笔记-集合

    集合使用花括号将元素之间用逗号隔开即可.集合的输出里不会出现相同的元素.集合中有并集.交集.差集等,以下为一些简单的表达: def main(): list1=[1,1,2,2,3,3] print( ...

  2. 【Postgres】Windows2012 不能启动

    PG启动错误-不知道什么错误 等待 postgresql-x64- 服务的连接超时( 毫秒). 由于下列错误,postgresql-x64- 服务启动失败: 服务没有及时响应启动或控制请求. 编写ba ...

  3. Ofbiz项目学习——阶段性小结——查询

    一.组装参数的学习 首先是查询条件,对于查询条件,需要判断是否从前端传递空值?——怎么处理查询空值? 当然可以一个一个进行判断,但是这样代码会导致很多,可以统一处理,形成一个公共方法. 1. 单个处理 ...

  4. vue分组全选权限,CheckBoxGroup

    <template> <div class="comPower"> <div class="card_header" v-show ...

  5. js中call,apply,bind方法的用法

    call .apply.和bind 以上这三个方法都是js function函数当中自带的方法,用来改变当前函数this的指向. call()方法 语法格式: fun.call(thisArg[,ar ...

  6. vcenter监控

    在vcenter上配置好用户名密码和url即可使用自动发现自动发现vmware

  7. ssh 可以登录但是 sftp 不能登录的解决办法

    将 /etc/ssh/sshd_config 中的 Subsystem      sftp    /usr/libexec/openssh/sftp-server 改为 Subsystem       ...

  8. 解决wordpress修改固定链接后出现404错误不能访问文章的方法

    首先,建议大家安装完wordpress网站程序之后第一时间设置一下固定链接,避免以后修改出错.在wp后台仪表盘左侧导航里找到“设置——固定链接”即可配置你的wordpress固定链接,通常我习惯使用的 ...

  9. 为什么 Redis 单线程能支撑高并发?

    阅读本文大概需要 4 分钟. 作者:Draveness 最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutipl ...

  10. Leetcode:2. 两数相加

    题目描述: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来 ...