>_ IzzyLab

Практическое задание

Проверь доступность сервиса

средне

Напиши /usr/local/bin/portcheck host port: если TCP-порт открыт — выход 0, если закрыт — выход 1. Проверяется на живом сервисе (порт 6500) и на закрытом (порт 6599).

Что потренируешь:
  • exit code
  • /dev/tcp
  • проверка порта
  • bash-скрипт
  • timeout

Разбор темы

«Порт открыт» = удаётся установить TCP-соединение; отказ (connection refused) означает, что порт закрыт. Ключевая идея задачи — превратить результат попытки подключения в код выхода скрипта: 0 при успехе, не-ноль при провале. Подключиться из чистого bash можно через псевдоустройство /dev/tcp/<host>/<port> (обернув в timeout, чтобы не зависнуть) или утилитой nc в режиме сканирования; дальше остаётся аккуратно пробросить наружу нужный exit status через if или код последней команды. Скрипт принимает аргументы $1/$2, начинается с шебанга и должен быть исполняемым (chmod +x).

Что проверяется

  1. portcheck исполняемый
  2. открытый порт 6500 даёт код 0
  3. закрытый порт 6599 даёт код 1

Как это выглядит