首先說明下我們的配置檔案,都是類似格式的,假如內網是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_sl**e_ip_w=
redis_sl**e_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()
#判斷內網網絡卡是否故障
function check_network()
#檢測各個網絡卡是否通暢
check_network $master_ip_n
check_network $salver_ip_n
check_network www.cppcns.com$mongo_ip_n
check_network $redis_master_ip_n
check_network $redis_sl**e_ip_n
check_network $sphinx_ip_n
本文標題: 用shell指令碼實現自動切換內網和外網實現高可用
本文位址:
用shell指令碼實現監控程式自動重啟
很少用shell指令碼,最近在寫乙個shell指令碼,遇到一些問題,竟然被折騰了半天。這些錯誤太低階了,不應該.趁現在有時間,將執行該shell的指令碼的整個過程記錄下來,方便以後作為參考。一 我們先看看編寫的shell指令碼的內容,該shell的作用主要是實現監控某個程式崩潰之後就自動重啟該程序。...
shell指令碼實現ftp自動備份
ftp命令把遠端計算機上的檔案傳輸到本地計算機時,需要和使用者互動。怎樣使互動過程自動化呢?利用here文件 bin sh ftp ivn 210.29.28.124 解釋 i 關閉多檔案傳輸過程中的互動提示,所以不會再有讓使用者輸入使用者名稱和密碼的提示 n 阻止了初始連線時的自動登入 v 將ft...
shell指令碼實現ssh自動登入
功能 shell指令碼實現ssh自動登入,裡面有些注釋掉的是編寫時遇到的一些問題和除錯資訊 說明 login fwq 登入賬戶名 login fwq ip 登入ip login fwq pw 登入密碼 如下 fwqs ssh.sh 指令碼內容,login fwq xcz login fwq ip 1...