代码拉取完成,页面将自动刷新
同步操作将从 LR/vipsvc 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
//*****************************************************************************
// 服务配置
//*****************************************************************************
// 主备固定网关
var gateway = "192.168.60.1";
// 主服务器固定IP
var masterIp = "192.168.60.55";
// 备服务器固定IP
var slaveIp = "192.168.60.244";
// 虚拟IP对应的网络适配器名称
var adapterName = "以太网";
// 虚拟IP
var virtualIp = "192.168.0.11";
// 虚拟IP子网掩码
var netmask = "255.255.255.0";
// 是否启用日志
var logEnable = true;
// 日志文件夹
var logDir = ".\\log";
//*****************************************************************************
//*****************************************************************************
(function() {
var ws = new ActiveXObject("wscript.shell");
var fs = new ActiveXObject("Scripting.FileSystemObject");
var tempDir = fs.GetSpecialFolder(2).Path;
if (logDir.length == 0) {
logDir = tempDir;
} else {
fs.CreateFolder(logDir);
}
function start() {
/* 服务启动,调用脚本启动应用服务 */
}
function stop() {
/* 停止服务,调用脚本停止应用服务 */
}
log("虚拟IP服务启动");
while (true) {
if (!ping(gateway)) {
deleteVip();
} else if (isMaster()) {
log("当前是主服务器");
addVip();
} else {
log("当前是备服务器");
if (ping(masterIp)) {
deleteVip();
} else {
addVip();
}
}
}
/// 记录日志
function log(str) {
if (logEnable) {
var time = new Date();
var txt = time.toLocaleString() + " " + str;
var file = logDir + "\\vip-" + time.getFullYear() + "-" + time.getMonth() + "-" + time.getDate() + ".log";
ws.Run("cmd /c echo " + txt + " >> " + file, 0, true);
}
}
/// 当前是否为主服务器
function isMaster() {
var ret = ws.Run("cmd /c ipconfig | findstr " + masterIp, 0, true);
return ret == 0;
}
/// 网络测试
function ping(ip) {
var ret = ws.Run("cmd /c ping " + ip + " -n 5 -w 3 | findstr TTL", 0, true);
if (ret != 0) {
log("ping " + ip + "失败");
return false;
}
return true;
}
/// 添加虚拟IP,启动应用服务
function addVip() {
var cmd = "cmd /c netsh interface ip add address";
cmd += " " + adapterName;
cmd += " " + virtualIp;
cmd += " " + netmask;
if (ws.Run(cmd, 0, true) == 0) {
log("添加虚拟IP:" + virtualIp);
start();
}
}
/// 删除虚拟IP,停止应用服务
function deleteVip() {
var cmd = "cmd /c netsh interface ip delete address";
cmd += " " + adapterName;
cmd += " " + virtualIp;
if (ws.Run(cmd, 0, true) == 0) {
log("删除虚拟IP:" + virtualIp);
stop();
}
}
}());
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。