从脚本中使用 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 在一行中发送命令不会保持侦听端口打开。

是否有其他我没有看到的路线,或者我总是需要登录目标计算机来创建侦听会话?

相关内容