这是我想要实现的目标:本地机器上有一个相当大的(~15TB)目录,我想将其存档在远程机器上。
这些是我想到的先决条件
- 由于本地机器的存储限制,无法使用临时本地文件
- 数据应以归档流(例如 tar)的形式到达,以便子目录中的小文件不会拖慢远程计算机上的文件系统
- 文件传输应该加密
- 远程机器上的档案必须受密码保护,以防止他人监视我的数据
- 连接速度足够快,因此不需要压缩
我尝试了 tar、gpg 和 ssh 的多种组合,但无法正确地将它们连接在一起。
答案1
在源计算机上使用此命令
tar cf - /path/to/your/dir | gpg -o - --symmetric - | ssh user@remotehost "cat - > /path/to/destination/file.tar.gpg"
tar cf - /path/to/your/dir
正在创建您的档案但将其发送到标准输出gpg -o - --symmetric -
正在加密tar 文件通过管道在标准输入上接收(这是通过命令的最后一个 - 完成的)并将结果输出到标准输出(通过 -o - 完成)ssh user@remotehost "cat - > /path/to/destination/file.tar.gpg"
使用 ssh 将前一个命令的标准输出传输为该命令的标准输入cat
,最终重定向到远程计算机上的文件