
Я использую эту команду для прослушивания порта и сохранения данных в файл:
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.