TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #463 1.01K
Массовое обновление конфигов через шаблоны

▪️ Шаблон конфига

configs/app.conf.tpl


server_name=${HOST};
listen=${PORT};
env=${ENV};
max_clients=${MAX_CLIENTS};


▪️ Задаём переменные


export HOST=bashtex.com
export PORT=8080
export ENV=prod
export MAX_CLIENTS=500


▪️ Массовая генерация конфигов


mkdir -p out

for tpl in configs/*.tpl; do
envsubst < "$tpl" > "out/$(basename "${tpl%.tpl}")"
done


На выходе:


out/app.conf
out/other.conf
...


▪️ Dry-run перед применением


envsubst < configs/app.conf.tpl | diff -u /etc/app/app.conf -


▪️ Применение с бэкапом


for f in out/*.conf; do
sudo cp -a "/etc/app/$(basename "$f")"{,.bak}
sudo cp "$f" /etc/app/
done


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

массовая смена портов/доменов
автогенерация конфигов при деплое
одинаковые шаблоны на разных хостах

BashTex 📱 #bash #utils
  • 👍 6
More from @bash_tex
  1. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  2. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  3. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  4. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  5. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  6. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →