linux、window系统实现一个脚本用于检测ip+端口是否可以正常通讯,如果不可以替换文件中的指定字符,用于实现php程序中数据库不能使用了自动切换到另一个数据库

linux系统:
创建一个check_connection.sh文件,使用vim check_connnection.sh创建进入后将以下内容复制粘贴进去即可

IP="192.168.1.49"
PORT="54321"
echo "ip is $IP"
echo "port is $PORT"
DB_FILE="/data/www/admin/config/database.php"
OLD_IP="192.168.1.50"
NEW_IP="192.168.1.49"
# 轮询间隔 5s
INTERVAL=5

while true; do

        echo "Trying to connect to $IP on port $PORT..."
        # 使用nc命令测试端口连接
        nc -zv -w3 $IP $PORT &>/dev/null
        # 检查端口是否成功连接
        if [ $? -eq 0 ]; then
                echo "Conection successful."

                sed -i "s/$OLD_IP/$NEW_IP/g" $DB_FILE
                echo "IP address in $DB_FILE replaced with $NEW_IP."
        else
                echo "Connection failed."
                sed -i "s/$NEW_IP/$OLD_IP/g" $DB_FILE
                echo "IP address in $DB_FILE replaced with $OLD_IP."
        fi

        # 等待指定的轮询时间
        sleep $INTERVAL
done


window系统:
创建check_connection.bat文件,内容如下:

@echo off

REM 尝试使用 PowerShell 检查指定 IP 和端口的连接情况
echo Trying to connect to 127.0.0.1 on port 3306...

REM 使用 PowerShell 的 Test-NetConnection 来检查端口
powershell -Command "if ((Test-NetConnection -ComputerName 127.0.0.1 -Port 3306).TcpTestSucceeded) { exit 0 } else { exit 1 }"

REM 检查 %errorlevel% 以决定连接是否成功
if %errorlevel% equ 0 (
    powershell -Command "(Get-Content 'D:\phpstudy_pro\WWW\tp_db\config\database.php') -replace '192.168.1.61', '127.0.0.1' | Set-Content 'D:\phpstudy_pro\WWW\tp_db\config\database.php'"
    echo Connection successful.
) else (
    echo Connection failed. Replacing IP in database.php...

    REM 使用 PowerShell 替换文件中的 IP 地址
    powershell -Command "(Get-Content 'D:\phpstudy_pro\WWW\tp_db\config\database.php') -replace '127.0.0.1', '192.168.1.61' | Set-Content 'D:\phpstudy_pro\WWW\tp_db\config\database.php'"

    echo IP replacement in database.php completed.
)
pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值