我有一个备份方法,将家里的所有 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 在一行中发送命令不会保持侦听端口打开。
是否有其他我没有看到的路线,或者我总是需要登录目标计算机来创建侦听会话?