【发布时间】:2016-08-08 13:51:14
【问题描述】:
在 HA 配置中,我会定期检查 eth0 上的 VIP 地址(我们称之为 2.2.2.2)。如果已经启动,那么我需要在 /etc/network/interfaces 配置文件中调出另一组为 eth0 定义的 IP 地址:
up ip addr add **1.2.3.34** dev $IFACE
up ip addr add **1.2.3.40** dev $IFACE
up ip addr add **1.2.3.48** dev $IFACE
并将每个 IP 仅传递给另一组命令:
ip a a **1.2.3.34/32** dev eth0
ip a a **1.2.3.40/32** dev eth0
ip a a **1.2.3.48/32** dev eth0
到目前为止我所做的是:
#!/bin/bash
STATUS=$(ip a s eth0 | grep inet | awk '{print $2}' | sed 's/addr://')
if ip a s eth0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep 2.2.2.2/27 ; then
cat /etc/network/interfaces | grep -o "up ip addr add [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" | grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" > /tmp/ext_ip.txt
现在我需要帮助如何将每一行传递给上面提到的另一个命令(ip a a 1.2.3...),但不知道如何正确执行此操作。
如果系统中不存在 VIP,我可以选择恢复操作 - 以防主要 HA 主机脱机。
【问题讨论】: