Использовать Netcat из скрипта (без входа в пункт назначения)

Использовать Netcat из скрипта (без входа в пункт назначения)

У меня есть резервный метод, настроенный для всех моих устройств Unix в доме, чтобы tar|pv|pigz|nc на локальном сервере. Как я видел из многочисленных примеров, все они имеют сначала целевую машину, прослушивающую порт (либо физически на машине, либо через ssh, например)

nc -w 60 -l 19001 > /dir/to/backup.tgz

Затем начните отправлять поток с текущей машины.

tar -cpf - /dir/to/backup | pv | pigz | nc -w 10 dest.i.p.addr 19001

Я пытаюсь написать скрипт, чтобы избежать необходимости открывать несколько терминалов на хост-машине во время этого процесса и сделать его почти одним щелчком. Обычно отправка команды по ssh для выполнения будет

ssh -f [email protected] "nc -w 60 -l 19001 > /dir/to/backup.tgz"

Но пока порт открыт и данные передаются и принимаются, файл backup.tgz не заполняется: всегда читается как пустой. Что наводит меня на мысль, что отправка команды через ssh в одну строку не сохраняет порт прослушивания открытым.

Есть ли еще один маршрут, который я не вижу, или мне всегда нужно будет входить в систему назначения, чтобы создать сеанс прослушивания?

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