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

前端之家收集整理的这篇文章主要介绍了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/

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

猜你在找的Linux相关文章