Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了脚本 – Rsync:常规文件/文件夹同步大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个文件服务器,负责每天从多个工作站中提取文件夹树.我目前的方法是使用rsync(它工作得非常好,提供的目录名和/或文件保持不变)但是,当文件在subdir1中重命名或移动时,rsync会将它们复制到服务器上,从而创建重复项. 我必须手动查找和删除以前同步期间留在服务器上的无关文件/文件夹.请注意,我不能使用rsync的–delete标志,因为来自工作站的任何同步将镜像该特定文件夹树,而不是将
我有一个文件服务器,负责每天从多个工作站中提取文件夹树.我目前的方法是使用rsync(它工作得非常好,提供的目录名和/或文件保持不变)但是,当文件在subdir1中重命名或移动时,rsync会将它们复制到服务器上,从而创建重复项.

我必须手动查找和删除以前同步期间留在服务器上的无关文件/文件夹.请注意,我不能使用rsync的–delete标志,因为来自工作站的任何同步将镜像该特定文件夹树,而不是将它们合并到服务器.

视觉图:

Server:         Workstation1        Workstation2        Workstation(n)
Folder*         Folder*             Folder*             Folder*
-subdir1        -subdir1            -subdir1            -subdir(n)
  -file1          -file1              -file2              -file(n)
  -file2
  -file(n)

>在重命名文件或将文件移动到其他子目录的情况下,是否有一个简单的脚本(最好是bash,没什么特别的)可以完成删除无关的文件/文件夹?@H_262_23@>是否有一个不同的程序,就像rsync一样,能够以更简单的方式自主完成这项任务?我已经看了一致,但我不喜欢它为同步信息保留一个本地数据库的事实.@H_262_23@>关于我应该如何解决这个问题的任何提示

谢谢你的帮助.

编辑:@H_262_23@我最近才尝试过unison,我可以肯定地说现在已经不可能了.@H_262_23@unison是一个双向同步工具,从我的测试中,它将服务器上存在的文件镜像到所有工作站. – 这是不需要的.

最好,我希望文件/文件夹保持在各自的工作站内,只是合并到服务器. AKA单向同步;但重命名/移动传播到服务器.

我可能要调查kyle提到的Git / Mercurial / Bazaar,@H_262_23@但仍然不确定他们是否适合这份工作.

解决方法

我认为Unison甚至Git / Mercurial / Bazaar可能是更好的选择.

bash脚本非常难以实现,因为重命名文件无法区分新文件的创建,这就是你在rsync中遇到的问题.

如果是我,我会尝试使用Git或Mercurial.可能需要一些额外的用户培训,但它确实是最好的选择.此外,它为您提供版本控制的好处,因此您可以恢复错误.

大佬总结

以上是大佬教程为你收集整理的脚本 – Rsync:常规文件/文件夹同步全部内容,希望文章能够帮你解决脚本 – Rsync:常规文件/文件夹同步所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。