我有一个 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,然后将增量移至循环末尾而不是开头。