Rsync 替代品

Rsync 替代品

在花了时间尝试rsync工作之后,我决定使用其他东西。我在 /home 有一个文件树,我想每天使用相同的树结构将其备份到 64G USB 记忆棒一次,但只复制目标中不存在的文件(并保留时间戳)。

问题:

即使源文件夹只有一个新文件(和 400 个旧文件),我的 rsync 总会找到理由将其中一半复制到目标。

我尝试了类似这样的方法

find /home/me/a/r/z/ -type f -mmin 400 | xargs -0 -I{} cp '{}' /media/usb-id/$( cut -d / -f 4- {} )

我知道有很多错误。我在 cut 中使用了“4”,因为这是树在目标 ( /media/usb-id/r/z/whatever) 中的起始位置。我认为我应该sed在所有这些中使用某种方法。有什么想法吗?

明显的错误:

cut: {}: No such file or directory

答案1

sudo rsync -Havnext4文件系统之间

如果你想保留文件的权限和所有权,这是最好的方法。这可能非常重要,因为 Linux 系统依赖它。但对于个人数据文件来说,这并不重要。

我建议先进行一次“试运行”

sudo rsync -Havn source/ target

如果看起来不错,删除该选项n并执行,

sudo rsync -Hav source/ target

它保留了“所有内容”,因此您可以将整个 Linux 操作系统从一个ext4文件系统复制到另一个ext4文件系统。而且您也可以通过这种方式只复制有限的目录树。


如果您必须能够从 Windows 读取它,则ext4目标驱动器上的替代方法是。请参阅udf此链接.udf文件系统可以管理linux文件系统的所有权和权限(以及时间戳)。

但是也有一个缺点udf,没有众所周知的工具可以修复它。

答案2

你可能会看看这个:https://github.com/Fitus/Zaloha.sh。它是一个基于 find 的 shell 脚本,也基于与您相同的想法(但正如您所预料的那样,它比您的单行脚本稍微复杂一些)...

相关内容