TGViewer
DevOps Ready | IT DevOps Ready | IT @devops_ready · 7.6K subscribers
Post #1317 1.19K
Пишем проверку доступности TCP-порта на Bash!

Иногда перед deploy, миграцией или запуском сервиса нужно убедиться, что база, Redis, брокер или внутренний API вообще доступны по сети.

Сделаем маленький скрипт без curl и nc. В Bash можно открыть TCP-соединение через /dev/tcp.

Сначала зададим host и port:
host="db.internal"
port="5432"


Проверка выглядит так:
if timeout 3 bash -c "</dev/tcp/$host/$port"; then
echo "open"
fi


timeout нужен, чтобы скрипт не завис надолго, если сеть молчит или firewall просто дропает пакеты.

Добавим ветку для ошибки:
else
echo "closed"
exit 1
fi


Теперь это можно использовать перед командой запуска:
./wait-port.sh db.internal 5432
./run-migrations.sh


Для CI удобно сделать параметры из аргументов:
host="$1"
port="$2"


Такой скрипт не заменяет полноценный healthcheck, но хорошо подходит для быстрых проверок зависимостей в deploy pipeline и init-скриптах.

➡️ DevOps Ready | #практика
  • 👍 8
  • ❤ 3
  • 🔥 3
  • 😁 1
More from @devops_ready
  1. Sep 30, 2026DevOps Daily собирает материалы по инфраструктуре! На сайте есть разборы Docker, Kubernete…
  2. Sep 29, 2026Разбираем SSH 7 флагов для подключения и туннелей! SSH нужен не только для входа на сервер…
  3. Sep 28, 2026📂 Напоминалка по построению observability-матрицы для проекта! Наблюдаемость помогает пон…
  4. Sep 25, 2026Знали, почему grep может завершить shell-скрипт без ошибки в самой команде? grep возвращае…
  5. Sep 25, 2026Делаем проверяемый бэкап PostgreSQL! Резервная копия полезна только тогда, когда её можно…
  6. Sep 24, 2026Шпаргалка по сигналам и остановке процессов в Linux! На картинке собраны основные сигналы…
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 →