.png)
У меня есть резервный метод, настроенный для всех моих устройств 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 в одну строку не сохраняет порт прослушивания открытым.
Есть ли еще один маршрут, который я не вижу, или мне всегда нужно будет входить в систему назначения, чтобы создать сеанс прослушивания?