Задать вопрос
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами

Как заставить netcat сохранять данные в файл?

Есть некий сервис, который периодически отсылает пакеты на сервер на определенный порт. Я хочу повесить netcat на него, чтобы все входящие пакеты сохранять в заданный файл в фоне.
Если запустить
nc -k -lp 8080 >> data.txt &

То он принимает один пакет и завершает работу.

Если запустить так:
while true; do nc -k -lp 8080 >> data.txt; done &

То процесс принимает и записывает один пакет, выводит в консоль что-то вроде:

[2]+ Stopped while true; do
nc -k -lp 8080 >> data.txt;
done


продолжает висеть в процессах, но в файл уже ничего не пишет.
Как правильно запустить netcat, чтобы он висел в фоне и продолжал писать пакеты в файл?

Система Debian GNU/Linux 9

P.S. Пока решил это запуском не в фоне, а в screen. Но хотелось бы более изящное решение.
  • Вопрос задан
  • 493 просмотра
Подписаться 2 Простой 3 комментария
Решения вопроса 1
fox_12
@fox_12 Автор вопроса
Расставляю биты, управляю заряженными частицами
Решил самостоятельно. Данный код работает корректно, плюс в качестве бонуса - в логе пишутся отметки времени вместе с дампом пакета:

while true; do (date; nc -k -lp 8080 2>&1 | sed 's/\r//g') | xargs >> environ.txt; done &
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы