resolv.conf всегда пуст

Он возвращает каталог, откуда он вызван/запущен, а не где находится скрипт!

Вот try.sh :

echo "The current working directory: $PWD"

Этот вывод будет более понятен :

[akarpe@ADM-PROD-OMNI ~]$ sh try.sh
The current working directory: /mnt/home/akarpe
[akarpe@ADM-PROD-OMNI ~]$ sh try/try.sh
The current working directory: /mnt/home/akarpe
[akarpe@ADM-PROD-OMNI ~]$ sh ./try.sh
The current working directory: /mnt/home/akarpe
[akarpe@ADM-PROD-OMNI ~]$ sh ./try/try.sh
The current working directory: /mnt/home/akarpe
[akarpe@ADM-PROD-OMNI ~]$ cd try
[akarpe@ADM-PROD-OMNI try]$ sh ./try.sh
The current working directory: /mnt/home/akarpe/try
[akarpe@ADM-PROD-OMNI try]$ sh ../try.sh
The current working directory: /mnt/home/akarpe/try
0
04.02.2019, 12:52
1 ответ

Создать скрипт в /etc/network/if-up.d/dnsс таким содержимым (в данном примере учитывается только eth0):

#!/bin/sh
if [ "$IFACE" = "eth0" ];then
for NS in $IF_DNS_NAMESERVERS; do
R="${R}nameserver $NS
"
done
echo "$R" > /etc/resolv.conf
fi

Сделайте его исполняемым с помощью chmod +x /etc/network/if-up.d/dns.

Каждый раз, когда вы перезагружаете устройство или перезапускаете сетевые службы, resolv.confбудет создаваться заново. Работает как шарм!

PS :Если вы используете другую директиву/именование, чем dns-nameserversв /etc/network/interfaces... например, my-dns, замените $IF_DNS_NAMESERVERSна $IF_MY_DNS. Хотя это здорово знать, я предпочел бы придерживаться соглашений и использовать dns-nameservers.

0
28.01.2020, 04:02

Теги

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