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