iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么用shell脚本实现自动切换内网和外网
  • 823
分享到

怎么用shell脚本实现自动切换内网和外网

2023-06-09 20:06:30 823人浏览 泡泡鱼
摘要

小编给大家分享一下怎么用shell脚本实现自动切换内网和外网,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先说明下我们的配置文件,都是类似格式的,假如内网是19

小编给大家分享一下怎么用shell脚本实现自动切换内网和外网,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

首先说明下我们的配置文件,都是类似格式的,假如内网是192.168.0.3,外网是123.123.123.123,配置文件如下:

$db['salver']['hostname'] = '192.168.0.3:3306';
//$db['salver']['hostname'] = '123.123.123.123:3306';

这个时候就是外网是注释的状态。走的是内网。
说下思路,就是一个配置文件,复制出来2分放到别的地方,这两份一个里面设置的是内网,一个里面设置的是外网,如果内网不通的情况下,判断当前用的是内网还是外网,如果是内网的情况下,就把外网的配置文件复制到网站文件里,如果内网通了,就把内网的配置文件再复制到网站文件里。就相当于是内网IP是主,外网IP是备一样。把这个脚本放在计划任务里,1分钟执行一次。

代码如下:


#!/bin/bash
#主从数据库的内外网IP
master_IP_N=
master_IP_W=
salver_IP_N=
salver_IP_W=
#monGo的内外网IP
mongo_IP_W=
mongo_IP_N=
#redis的主从内外网IP
Redis_master_IP_W=
redis_master_IP_N=
redis_slave_IP_W=
redis_slave_IP_N=
#sphinx的内外网IP
sphinx_IP_W=
sphinx_IP_N=
#网站配置文件的位置
database_path=/home/caoy/database.PHP
mongo_path=/home/caoy/over_sea_stock.php
redis_path=/home/caoy/Rediska_connector.php
sphinx_path=/home/caoy/SphinxConnector.php
config_path=/data/check_ip_config/
#检测当前使用的网卡
function check_ip(){
IP_config=`cat $1  |grep $2 | cut -c1-2`
if [ "$IP_config" == "//" ];then
        ip_status=1
else
        ip_status=0
fi
}
#判断内网网卡是否故障
function check_network(){
nmap -sP $1 | grep "1 host up" >/dev/null || (sleep 5 ; nmap -sP $1) | grep "1 host up" >/dev/null
#ping $1 -c 5 > /dev/null
if [[ "$?" == "1" ]]; then
        check_ip $database_path $1
        if [[ "$ip_status" == "0" ]];then
                cp -r $config_path/database_w.php $database_path
                echo "cp database_w.php is ok!"
        fi
        check_ip $mongo_path $1
        if [[ "$ip_status" == "0" ]];then
                cp -r $config_path/over_sea_stock_w.php $mongo_path
                echo "cp over_sea_stock_w.php is ok!"
        fi
        check_ip $redis_path $1
        if [[ "$ip_status" == "0" ]];then
                cp -r $config_path/Rediska_connector_w.php $redis_path
                echo "cp Rediska_connector_w.php is ok!"
        fi
        check_ip $sphinx_path $1
        if [[ "$ip_status" == "0" ]];then
                cp -r $config_path/SphinxConnector_w.php $sphinx_path
                echo "cp SphinxConnector_w.php is ok!"
        fi
else
        check_ip $database_path $1
        if [[ "$ip_status" == "1" ]];then
                cp -r $config_path/database_n.php $database_path
                echo "cp database_n.php is ok!"
        fi
        check_ip $mongo_path $1
        if [[ "$ip_status" == "1" ]];then
                cp -r $config_path/over_sea_stock_n.php $mongo_path
                echo "cp over_sea_stock_n.php is ok!"
        fi
        check_ip $redis_path $1
        if [[ "$ip_status" == "1" ]];then
                cp -r $config_path/Rediska_connector_n.php $redis_path
                echo "cp Rediska_connector_n.php is ok!"
        fi
        check_ip $sphinx_path $1
        if [[ "$ip_status" == "1" ]];then
                cp -r $config_path/SphinxConnector_n.php $sphinx_path
                echo "cp SphinxConnector_n.php is ok!"
        fi
fi
}
#检测各个网卡是否通畅
check_network $master_IP_N
check_network $salver_IP_N
check_network $mongo_IP_N
check_network $redis_master_IP_N
check_network $redis_slave_IP_N
check_network $sphinx_IP_N

以上是“怎么用shell脚本实现自动切换内网和外网”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 怎么用shell脚本实现自动切换内网和外网

本文链接: https://www.lsjlt.com/news/257661.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用shell脚本实现自动切换内网和外网
    小编给大家分享一下怎么用shell脚本实现自动切换内网和外网,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先说明下我们的配置文件,都是类似格式的,假如内网是19...
    99+
    2023-06-09
  • 用shell脚本实现自动切换内网和外网实现高可用
    首先说明下我们的配置文件,都是类似格式的,假如内网是192.168.0.3,外网是123.123.123.123,配置文件如下: $db['salver']['hostname'] = '192.168.0...
    99+
    2022-06-04
    内网 脚本 shell
  • 怎么用Shell脚本实现批量替换文件内容
    这篇文章主要讲解了“怎么用Shell脚本实现批量替换文件内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Shell脚本实现批量替换文件内容”吧!系统:centos 5.x1.先确认有...
    99+
    2023-06-09
  • shell脚本怎么实现快速ping网段内的IP地址
    本篇内容主要讲解“shell脚本怎么实现快速ping网段内的IP地址”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell脚本怎么实现快速ping网段内的IP地址”吧!想看网段中有哪些IP被用...
    99+
    2023-06-05
  • 怎么用Shell脚本实现监控kingate并自动启动
    本篇内容介绍了“怎么用Shell脚本实现监控kingate并自动启动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!自己在vps做的kinga...
    99+
    2023-06-09
  • 使用canvas怎么实现文本内容自动换行
    本篇文章为大家展示了使用canvas怎么实现文本内容自动换行,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。ctx: 画布的上下文环境content: 需要绘制的文本内容drawX: 绘制文本的x坐标...
    99+
    2023-06-09
  • 怎么使用shell脚本执行命令实现自动填充密码
    这篇文章主要介绍“怎么使用shell脚本执行命令实现自动填充密码”,在日常操作中,相信很多人在怎么使用shell脚本执行命令实现自动填充密码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用shell脚本...
    99+
    2023-07-05
  • 怎么用shell脚本实现批量测试局域网主机是否在线
    本篇内容主要讲解“怎么用shell脚本实现批量测试局域网主机是否在线”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用shell脚本实现批量测试局域网主机是否在线”吧!由于局域网内主机多,VL...
    99+
    2023-06-09
  • CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中
    一、安装Email发送程序 yum install sendmail mutt 二、安装FTP客户端程序 本脚本需要用到FTP客户端程序将文件上传到FTP空间上面,因此必须安装FTP客户端,否则将...
    99+
    2022-06-04
    脚本 自动备份 数据库
  • CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中
    这篇文章主要讲解了“CentOS中如何使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS中如何使用Shell脚本实现...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作