微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 获取rsync将文件从源移动到目标?

rsync对我的项目来说是个不错的选择吗?

我必须 :
– 通过SSH将文件从源文件复制到目标文件夹,
– 确保复制所有文件,
– 复制后删除文件.
– 如果我有冲突名称,我必须重命名文件.

看起来我可以使用选项: – remove-source-files(删除文件)
但是rsync如何管理冲突,我可以有规则吗?

我的项目的用例:

我在服务器A上运行科学计算,结果被插入文件夹“process”,对于每个计算,我有一个这样的存储库:/ process / calc1.
现在我想将存储库“/ calc1”传输到服务器B(我得到/ process / calc1),并从服务器A中删除“calc1”.
…在另一个计算中,我在服务器A上得到“/ process / calc2”,想法也是在服务器B上的“/ process /”目录中移动“calc2”,然后我现在在服务器B上:
– / process / calc1
– / process / calc2
(和/ server / on服务器A为空).

rsync如何管理冲突(在服务器B上)如果在新计算之后我在服务器A中有另一个文件夹如“/ process / calc1”(如果服务器B上已经存在“/ process / calc1”)?

是否可以使用rsync添加规则,并在服务器B中将“/ process / calc1”重命名为“process / calc1R2”?等等(例如:calc1R3)?

谢谢.

解决方法

如果你真的想使用rsync,听起来你需要一些–backup,– backup-dir和–suffix的组合.我认为你能得到的最接近的是这样的东西
rsync -abv --suffix R1 --remove-source-files src/ dst/

这将接近你想要的,但它不会完全按照你想要的方式重命名文件. –suffix选项将文本附加到现有文件的末尾,但它仅针对第一个冲突执行此操作.如果再次运行它,它只会覆盖您的第一个备份.每次运行命令时都必须更改该后缀值,如果您使用带有时间戳的内容,这将起作用,例如:

rsync -abv --suffix `date +%Y%m%d%k%M%s` --remove-source-files src/ dst/

我不确定这对你所追求的是否有点过分,但它应该符合你的要求.

原文地址:https://www.jb51.cc/linux/400562.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐