Многоадресная рассылка нескольких имен mdns

Вы можете заставить sed завершить работу по шаблону с помощью sed '/ pattern / q' , так что вам просто нужны ваши совпадения, а затем выйти при втором совпадении с шаблоном:

sed -n '/^pattern1/,/^pattern2/p;/^pattern2/q'

Таким образом будет показан только первый блок.

4
18.01.2016, 13:29
3 ответа

Громоздким решением было бы запустить несколько экземпляров следующей команды в фоновом режиме:

avahi-publish -a -R whatever.local 192.168.123.1

Лучшее решение, вероятно, - публикация cnames с использованием python-avahi. См., Например, https://github.com/airtonix/avahi-aliases или http://www.avahi.org/wiki/Examples/PythonPublishAlias ​​

Обновление:
{{1} } Похоже, что авахи вики больше нет. Вот заархивированная страница ссылки, которую я разместил: https://web.archive.org/web/20151016190620/http://www.avahi.org:80/wiki/Examples/PythonPublishAlias ​​

7
27.01.2020, 20:49

Во-первых, Avahi, похоже, не поддерживает псевдонимы напрямую с помощью одной из своих стандартных команд, но их веб-сайт (практически отключенный с 2016 года) раньше разместить очень короткий и простой скрипт Python, который сделает это.

С помощью этого сценария вы можете рекламировать любое количество CNAME для вашей текущей машины следующим образом:

$ ./avahi-alias my-alias.local my-second-alias.local

Я много погуглил, и вы можете увидеть мои результаты здесь . Там есть копия исходного сценария вики и инструкции о том, как запустить его как службу.

В рецензию также включены мои заметки по всем различным проектам псевдонимов Avahi, которые вы можете там найти (включая уже упомянутый здесь проект Airtronix). Все они оказались лишь небольшими вариантами исходного сценария Python, за исключением сценария на основе Ruby, который является частью серверного проекта OpenShift Origin.

3
27.01.2020, 20:49

Альтернативный метод , self -, содержащийся в одном файле systemd, был опубликован в ошибка, отслеживающая отсутствие этой возможности .

[Unit]
Description=Publish %I as alias for %H.local via mdns
Requires=avahi-daemon.service
After=avahi-daemon.service

[Service]
Type=simple
ExecStart=/bin/bash -c "/usr/bin/avahi-publish -a -R %I $(avahi-resolve -4 -n %H.local > /dev/null && ip route get 1 | awk '{print $7;exit}')"
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Использование:

# Publish test.local as a pointer to this system:
sudo systemctl enable --now avahi-alias@test.local.service
0
14.06.2021, 17:58

Теги

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