将 IP 列表导入 DEVICE=eth0:X

将 IP 列表导入 DEVICE=eth0:X

我有一个 IP 列表,想要导入到我的 Linux VPS 中。它们不是 IP 范围。

我如何创建一个 bash 脚本来为我做这件事?

1.1.1.1
2.2.2.2

如果它们在我的 IP 列表中,那么它应该创建以下两个文件

/etc/sysconfig/network-scripts/ifcfg-eth0:1

-

DEVICE=eth0:1
BOOTPROTO=static
ONBOOT=yes
IPADDR=1.1.1.1
NETMASK=255.255.255.0

-

/etc/sysconfig/network-scripts/ifcfg-eth0:2

-

DEVICE=eth0:2
BOOTPROTO=static
ONBOOT=yes
IPADDR=2.2.2.2
NETMASK=255.255.255.0

答案1

干得好:

counter=`ls -1 /etc/sysconfig/network-scripts/ifcfg-eth0:* 2>/dev/null | cut -d : -f 2 | sort -n | tail -1`
if [ -z "$counter" ]
then
  counter=0
fi

for ip in `cat iplist.txt`
do
  counter=`expr $counter + 1`
  cat << EOM > /etc/sysconfig/network-scripts/ifcfg-eth0:${counter}
DEVICE=eth0:${counter}
BOOTPROTO=static
ONBOOT=yes
IPADDR=${ip}
NETMASK=255.255.255.0
EOM
done

这将首先找到 eth0 上编号最高的虚拟接口,然后iplist.txt从那里开始为每一行创建一个新文件,并填写适当的值。

如果你想覆盖现有文件,你可以先执行rm,或者删除计数器逻辑,只需将其设置为 0,然后将增量移至循环末尾而不是开头。

相关内容