Постоянно прослушивайте порт и сбрасывайте данные в файл

Постоянно прослушивайте порт и сбрасывайте данные в файл

Я использую эту команду для прослушивания порта и сохранения данных в файл:

while :  ; do nc -l 0.0.0.0 10000 > log.txt & done

Первый запрос работает отлично, все записывается в log.txt, но после первого запроса nc больше не слушает и останавливается.

Может ли кто-нибудь указать мне, что я делаю неправильно?

Я просто хочу, чтобы это работало в фоновом режиме непрерывно и регистрировало все запросы с этого порта в файле log.txt...

решение1

Вам необходимо добавить опциюнк. Опция зависит от версиинквы работаете. Например, в моем случае (Kubuntu) опция такая. Из страницы руководства,

-k Заставляет nc продолжать прослушивать другое соединение после завершения текущего соединения. Использование этой опции без опции -l является ошибкой.

Не обещаюработает (если вы не Ubuntu, конечно), вам придется поискать что-то похожее. Например, на моем Debian,не существует, но вы найдете:

-q секунд после EOF на stdin, ждать указанное количество секунд и затем выйти. Если секунды отрицательны, ждать вечно

Редактировать:

Чтобы проверить работоспособность, на одном компьютере:

  nc -k -l 0.0.0.0 10000 > out.txt

На втором ПК:

  echo Hello | nc IP_address_of_first_pc 10000

Повторите указанную выше команду несколько раз, затем прервите ее.нккоманда на ПК1, проверка количества строк в out.txt.

Связанный контент