Bash как быстро сформировать локальный hosts файл из конфигов nginx

В процессе разработки многие вручную резолвят домен на ip сервера, прописывая соответствие IP hostname в локальный hosts файл, чтобы видеть изменения на сайтах без всяких кешей, либо домены вообще ещё могут не указывать A записями на сервер и отсутствовать как таковые. Но что делать, если на сервере несколько десятков хостов и они могут удаляться/добавляться? Предположим конфиги сайтов лежат в /etc/nginx/username/domainname.conf Для получения списка всех доменов, который мы положим в наш hosts

Конфиги могут располагаться и по другому в /etc/nginx/sites-enabled/* и не иметь расширения, также не обязательно файл конфига может быть подписан именем домена. Хотя это плохая практика и так обычно не делается. Тогда может помочь команда:

или перебор всех директив server_name в каталоге nginx

Распарс выдачи nginx -T на предмет директивы server_name наиболее предпочтителен, потому как конфиг файлы могут включаться не только ссылками, но и самими конфиг файлами и не обязательно могут присутствовать в каталоге /etc/nginx. В данном случае nginx выдаст нам абсолютно всё что у него есть.

Например так:

 

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *