Перейти к основному содержимому

Сканер открытых портов в Raycast

·417 слов·2 минут
Софт Гайды
Юрий Семеньков
Автор
Юрий Семеньков
DevOps, tech, geek, mentor
Оглавление

В этой статьей я покажу, как можно добавить свой скрипт в Raycast на примере проверки открытых портов на серверах.

Я очень часто пользуюсь сервисами для проверки открытых портов на серверах, чтобы быстро понять закрыт ли у меня определенный порт на сервере или нет. Для этого в закладках держал вот этот сайт https://www.yougetsignal.com/tools/open-ports/ (один из многих, на которых можно проверять порты)

Не так давно писал про Raycast как замену для Alfred, и про то, что я довольно быстро разобрался как добавить свой скрипт в быстрый запуск. Собственно, даже упоминал этот скрипт в том посте, но хочу рассказать чуть подробнее.

В общем, так как мне нравится тот сайт, я посмотрел через «консоль разработчика» какой запрос делается в момент нажатия на кнопку Check.

Создаем скрипт
#

Оставалось только немного поэкспериментировать с параметрами curl запроса и получился такой:

curl -s -X POST https://ports.yougetsignal.com/check-port.php\?remoteAddress\=$1\&portNumber\=$2

$1 и $2 это аргументы, которые были переданы .sh скрипту при запуске (например scripts.sh foo bar. $1 = foo, $2 = bar и так далее. $0 это всегда название файла)

Нам остается только «выцепить» Open или Closed из ответа. Делаю через grep -o "Open\|Closed". Параметр -o выведет только ту строку, которая матчится с регуляркой, а у нас там «или Open или Closed».

Объединяю две команды (curl и grep) через пайп (символ |). Пайп (pipeline) переводит стандартный вывод (stdout) первой команды на стандартный ввод (stdin) второй.

Добавляем эту команду в наш .sh файл, не забывая шебанг #!/bin/bash.

Добавляем скрипт в Raycast
#

Но, что сделать, чтобы Raycast «увидел» наш скрипт?

Нужно добавить некоторую мета-информацию — название, поля для интерактивного ввода, документацию… Внимательнее можно посмотреть на нее в моем скрипте, должно быть все понятно. Или в официальных примерах.

Затем заходим в настройки Raycast (Cmd + ,).

Открываем вкладку Extensions, ищем там пункт Script Command (через поиск почему-то не находится) и нажимаем на него. Справа будет Add directories, в ней и добавляем директорию с нашим скриптом.

dsadsa

Сразу вешаем на него какой-нибудь короткий Alias:

Если добавить новые скрипты в эту директорию, то они автоматически появятся в Raycast. Максимум — нужно будет запустить команду Reload Script Directories.

Теперь пробуем запустить:

Единственное с чем я не заморачивался — это цвет «лампочки» внизу — он базируется на коде ответа скрипта, поэтому всегда зеленый, если curl был успешен.

Как видишь, добавить свой скрипт в Raycast совсем не сложно. Главное, чтобы была фантазия.

Ты можешь скачать мой репозиторий со скриптами и добавить его по инструкции из README. Вот ссылка 👉 https://github.com/etoosamoe/raycast-scripts

А подписавшись на мой телеграм-канал ты точно не пропустишь новые статьи и интересности из интернета ✌️

Related

Split DNS в MacOS, OpenVPN и Tunnelblick
·592 слов·3 минут
Гайды Софт
Outline — VPN на своем сервере за 5 минут
·649 слов·4 минут
Гайды Софт
Перенос git репозитория
·135 слов·1 минута
Софт Гайды