Заставить systemd-resolved игнорировать DNS-сервер и использовать только тот, который я укажу

Вот скрипт для начала.
Он принимает 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, выдача ошибки и т. д. Однако, я оставляю это вам на ваши требования.

0
14.04.2020, 07:00
1 ответ

Если вы можете установить статический IP-адрес, вы можете указать DNS-сервер. Спросите у сетевых администраторов статический IP-адрес, который вы можете использовать, и попробуйте его. Не используйте для этого любой IP-адрес, вы можете легко получить дубликат.

0
19.03.2021, 02:29

Теги

Похожие вопросы