Linux 大目录拷贝

2022-10-25 09:41:45 +08:00
 Aumujun

现在有个服务运行的时候会实时产生大量细碎文件,我需要在不停服务的情况把它的所有数据拷贝到另一个磁盘;有什么办法能够在不影响服务的情况下完整同步它的所有文件呢,以前一直用的 rsync ,但从来没有在这个场景里试过。文件系统是 xfs ,需要拷贝的数据大概在 2T 左右 。

4484 次点击
所在节点    Linux
34 条回复
novolunt
2022-10-25 14:16:15 +08:00
@ursus1024 对,使用 Facebook 开源压缩程序 zstd
同步到服务器
zstd -14 -T0 -r /opt -c | ssh $slave "cat > pkg_file. tgz "
同步到微软云 blob
zstd -14 -T0 -r /opt -c | azcopy copy --from-to PipeBlob "https://myaccountname.blob.core.windows.net/inputs/input.fastq.gz" #input.fastq.gz 这里需要固定得文件名,PipeBlob 是固定的
julyclyde
2022-10-25 14:17:36 +08:00
之前给一个服务器做数据备份
直接读它的日志,看哪些文件变化过,然后整理成列表给 rsync 用
lvzhiqiang
2022-10-25 15:35:13 +08:00
推荐用 lsync ,直接集成 文件变动通知。
ladypxy
2022-10-25 15:37:34 +08:00
换成 zfs ,直接定期发送快照
madao2015
2022-10-25 15:42:22 +08:00
rsync 挺快,应该有检查文件一致性的参数
defunct9
2022-10-25 17:30:26 +08:00
lsync ,这个是王道。但是小心它的语法,跟 rsync 有区别
MrKrabs
2022-10-25 20:21:24 +08:00
你数据一直在变怎么定义“完整同步”?
Aumujun
2022-10-25 23:24:31 +08:00
@MrKrabs 你猜楼上给出解决方案的老哥们怎么定义的?
Aumujun
2022-10-25 23:25:29 +08:00
@defunct9 正在用了,还没拷完,后面看看效果。
erhandsome
2022-10-25 23:35:16 +08:00
lsyncd
yyttrr
2022-10-26 10:35:54 +08:00
塞进 docker 里面准备两套启动命令,相同的镜像,不同的端口,不同的持久化目录。
运行第一个启动命令,产生文件,过一段时间之后,停止第一个容器,运行第二个启动命令。这时拷贝第一个产生的文件,重复执行
msg7086
2022-10-26 15:57:51 +08:00
btrfs snapshot (或者 zfs ),先暂停,然后快照,然后继续跑。快照里的你慢慢 rsync ,跑完释放掉。
yanqiyu
2022-10-27 16:20:22 +08:00
btrfs 创建一致快照再 send 出去
liuliancao
2022-11-05 14:58:00 +08:00
啥文件 啥服务 文件内容啥 其实也可以考虑利用起来 比如接个 filebeat 吐出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/889579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX