Прослушайте входящий запрос на порт в Linux, затем выполните команду
Я придумаю как можно более легкое решение для прослушивания порта для конкретного запроса, а затем выполнить команду, если порт будет подключен и правильный запрос будет получен.
Например. Отправить запрос на 192.168.0.10
в порту 5432
со строкой my_token
, На хосте (например. 192.168.0.10
), затем выполните команду, если этот порт будет подключен, а строка соответствует.
Я изначально думал об использовании netstat
(например. nc -l 5000
) затем запустите команду на изменение. Тем не менее, в идеале строка или маркер должны быть идеальными вместе с этим или подобным, но без использования полноценного веб-сервера - по сути, то, что может работать в фоновом режиме с небольшим количеством ресурсов.
1 ответ
Это может быть сделано с nc
, Следующий фрагмент читает строки из порта 5000
и работает some_command
если линия token
или же some_other_command
если линия foo
, После того, как клиент отключается, nc
снова запускается.
while true; do
nc -l 5000 | {
while read line; do
case "$line" in
token )
some_command;;
foo )
some_other_command;;
esac
done
}
done
Чтобы поговорить с ним, беги nc localhost 5000
, затем введите, например:
foo
token
whatever
foo
Завершить с помощью Ctrl+D или Ctrl+C. Недостатком является то, что когда один клиент остается подключенным, другой не может подключиться. Чтобы свести к минимуму такие коллизии, вы можете отправить одну команду за раз и немедленно отключиться:
echo token | nc localhost 5000
или (в баш)
echo token > /dev/tcp/127.0.0.1/5000