首先说明下我们的配置文件,都是类似格式的,假如内网是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,自动切换,内网,外网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 刘欢《雨中的树(新歌加精选)2CD》德国HD24K金碟[WAV+CUE]
- 郑源 《世间情歌》6N纯银SQCD[WAV+CUE][1G]
- 群星《粤潮2HQII》头版限量编号[低速原抓WAV+CUE][991M]
- 群星《2023好听新歌21》十倍音质 U盘音乐[WAV分轨][1G]
- 《热血传奇》双11感恩回馈 超值狂欢30天
- 原神5.2版本活动汇总 5.2版本活动有哪些
- 张敬轩.2010-NO.ELEVEN【环球】【WAV+CUE】
- 黄丽玲.2006-失恋无罪【艾回】【WAV+CUE】
- 阿达娃.2024-Laluna【W8VES】【FLAC分轨】
- 宝可梦大集结段位等级划分表大全 大集结段位一览
- 龙腾世纪影障守护者工坊与装备如何升级 工坊与装备升级说明
- 龙腾世纪影障守护者全成就攻略分享 龙腾世纪4全成就列表一览
- 《剑星》更新四套全新战衣!
- 卡普空老将伊津野英昭宣布入职腾讯光子 开发3A动作
- 38岁梅根·福克斯官宣怀孕:将迎来第四个孩子