如何在目标主机上“查找”然后“Rsync”然后“Tar/gz”?

如何在目标主机上“查找”然后“Rsync”然后“Tar/gz”?

我有一个 Cassandra 节点,其中快照分为 64 个目录,每个目录有超过 350 个文件。我想“查找”所有快照文件,保留它们的位置,将它们同步到具有大量文件空间的主机,然后在登陆时将它们 tar/gz 。这可以一步完成吗?

目前我必须:

find /mnt* -type d -name snapshots -exec /usr/bin/rsync {} -avhr user@host:/mntc/backups/ ';'

然后:

tar -czpf /mntd/backups/mybackup.tgz /mntc/backups/snapshots

如果能在 rsync 过程中将找到的文件直接“倒入”另一端的存档中,那就太好了。这可能吗?

笔记:

  1. Cassandra 节点没有所需的 1Tb 可用空间来在查找搜索中预压缩文件
  2. 将文件 Rsync 到新主机,然后打包结果需要主机上有 2Tb,减少了我一次可以执行的 Cassandra 节点数量(总共 20 个需要备份)

答案1

长话短说,这是我发现实现这一目标的最佳方法,以防其他人感兴趣:

find /mnt* -type d -name snapshots > dir.list; \
   tar -czpf - -T dir.list | ssh user@host "openssl aes256 \
   -out /mntc/backups/snapshot.tgz.enc -salt -k 'secret'"

相关内容