Вот скрипт для начала.
Он принимает port name
в качестве входных данных, поскольку файлы ifcfg
соответствуют имени порта, поэтому, если предоставленное имя порта недействительно, выдается ошибка.
Кроме того, вы можете добавить дополнительные параметры, такие как IPADDR
, DEVICE
и т. д., которые, если они присутствуют в файле ifcfg -, будут заменены новым предоставленным значением, в противном случае они будут добавлены к файлу.
#!/usr/bin/bash
function usage() {
echo "Usage:"
echo "$0 <port-name>"
}
function input_to_file() {
param=$1
value=$2
portname=$3
ifcfgfile="/etc/sysconfig/network-scripts/ifcfg-$portname"
echo $param=$value
grep -q "^$param=" $ifcfgfile && sed "s/^$param=.*/$param="$2"/" -i $ifcfgfile ||
echo $param="$value" >> $ifcfgfile
}
if [[ $# -lt 1 ]]; then
usage;
exit 1;
fi
portname=$1
# Validate the port-name passed
ifconfig $portname &> /dev/null
if [[ $? -ne 0 ]]; then
echo "Invalid port name passed"
exit 1
fi
ifcfgfile="/etc/sysconfig/network-scripts/ifcfg-$portname";
# Create file if not present for a valid port. This is actually not required if you are creating file prior to running script.
if [ ! -f $ifcfgfile ]; then
touch $ifcfgfile
fi
echo -n "ONBOOT=[yes/no]: ";
param="ONBOOT"
read value
input_to_file $param $value $portname
Дальнейшим усовершенствованием этого скрипта будет проверка входных данных, например, если значение для ONBOOT
отличается от yes
/ no
, выдача ошибки, если передан неверный IPADDR
, выдача ошибки и т. д. Однако, я оставляю это вам на ваши требования.
Если вы можете установить статический IP-адрес, вы можете указать DNS-сервер. Спросите у сетевых администраторов статический IP-адрес, который вы можете использовать, и попробуйте его. Не используйте для этого любой IP-адрес, вы можете легко получить дубликат.