我想使用 rsync 将目录从生产服务器备份到备份服务器。
我当前的解决方案:
- tar 目录
- 在生产服务器上通过 rsync 发送到远程服务器
我对此解决方案的问题是:没有足够的空间来创建 tar 文件 + 创建 tar 时需要太多资源。它应该尽可能减少对生产服务器资源的影响。
我想将文件发送到远程服务器上的 tar 文件中。我只需发送文件并在备份服务器上将其打包即可,但在我看来,这不是一个好的解决方案。
答案1
您可以结合使用管道和 STDOUT 通过网络将 tar 文件发送到远程服务器。
tar zcvf - /your/directory | ssh -i private.key backup-user@backupserver "cat > /backup/file.tgz"
“-”字符将 tar 发送到 STDOUT,然后通过管道传输到 STDOUT ssh
,并使用将内容写入常规文件cat
。
您需要使用ssh
私钥文件进行“无密码”身份验证。
这不会使用rsync
但会将 tarfile 发送到远程服务器。
参考: https://stackoverflow.com/questions/8045479/whats-the-magic-of-a-dash-in-command-line-parameters