… и выполнить те или иные операции в зависимости от результата проверки, используя командный процессор, например bash.
Примерно так формулируется очередная небольшая задача, возникающая в ежедневном потоке рутины автоматизации работы.
Существует множество подходов, а мне нравится использовать утилиту netcat или nc. Вот пример логики для пакетного исполняемого файла:
1 2 3 4 |
#/bin/bash nc -z 127.0.0.1 3306 \ && echo "Порт уже открыт, видимо mysql запущена" \ || echo "Порт свободен"; |
В примере выше, мы проверяем стандартный порт MySQL — 3306. Если он уже используется, nc возвращает true и выполняется следующая команда в цепочке — выводится сообщение о том, что порт уже открыт. В противном случае выполняется следующая команда с сообщением, что порт не занят.
Для более сложных скриптов можно воспользоваться оператором if — then — else, тогда скрипт будет выглядеть так:
1 2 3 4 5 6 7 |
#/bin/bash if nc -z 127.0.0.1 3306; then echo "Порт уже открыт, видимо mysql запущена"; else echo "Порт свободен"; fi; |
Второй вариант более читабельный и позволяет легко конструировать вложенные условия.