我发现自己陷入了一个奇怪的情况。我想我必须编写自己的脚本,但只是想知道是否可以使用一些 rsync 或其他选项来完成工作。
我必须从 Windows 共享文件夹中获取新的和更改的文件。人们会随机地手动将批量日志放入其中。日志本身相当小,但数量却很大。我已经使用 cifs 挂载了这个共享文件夹。
我想将此安装文件夹的内容与我的 Linux 驱动器上的目标文件夹进行 rsync。
目标驱动器是logstash 的数据源。为了节省空间,logstash 已配置为在处理后删除目标文件夹中的文件。
据我所知,在这种情况下,rsync 将在下次调用时复制回所有文件。
是否有一个选项可以告诉 rsync 仅复制新的或更改的文件,而不复制那些已经复制到目标的文件。
我认为这是不可能的,因为 rsync 本身不维护任何记录。或者是否可以进行一些高级配置?或者linux生态系统中有其他工具吗?
答案1
如果您很高兴在rsync
成功复制文件后从源中删除文件,则可以解决您的要求
rsync -av --remove-source-files ...
这实际上是一个移动而不是一个复制。