用shell指令碼實現自動切換內網和外網實現高可用

2022-09-26 17:21:15 字數 1427 閱讀 5573

首先說明下我們的配置檔案,都是類似格式的,假如內網是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...