Скрипт ориентируется на расположение конфигурационных файлов принятых в ориентированных на RedHat дистрибутивах. Пример использования:
sh configure-bonding 10.10.10.10 255.255.0.0 eth0 eth2
Запуск объединит два интерфейса eth0 и eth2 в интерфейс bond0, установит для интерфейса bond0 адрес 10.10.10.10 с сетевой маской 255.255.0.0, пропишет необходимые параметры в
/etc/modprobe.conf. Сам скрипт выглядит тривиально:
#!/bin/sh
# $Id: configure-bonding 1002 2009-12-10 15:25:28Z root $
addr=$1
netmask=$2
iface1=$3
iface2=$4
if [ x"$addr" = x -o x"$netmask" = x -o x"$iface1" = x -o x"$iface2" = x ]; then
echo "Usage: $0 address netmask iface1 iface2"
exit 1
fi
for iface in $iface1 $iface2; do
hwaddr=`cat /etc/sysconfig/network-scripts/ifcfg-$iface | awk -F= '/HWADDR/ { print $2 }'`
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$iface
DEVICE=$iface
HWADDR=$hwaddr
MASTER=bond0
SLAVE=yes
ONBOOT=yes
EOF
done
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=$addr
NETMASK=$netmask
ONBOOT=yes
EOF
cat <<EOF >> /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=1 miimon=100
EOF