我my_projects_linux
在 Ubuntu 文件系统中有一个名为 inside 的目录,其中包含我多年来的所有工作。该目录包含文件、子目录等。
为了备份目的,我偶尔会将该目录及其所有内容复制到外部硬盘上。
因此,我的外部驱动器的内容如下所示:
/mounted_drive/my_projects_linux
/mounted_drive/my_projects_windows # the same idea to backup Windows work
因此,我正在寻找一个命令:
可以作为
cp /home/my_projects_linux /mounted_drive/my_projects_linux
它应该用我电脑中的新内容替换外部磁盘中的旧文件、子目录、子目录内的文件等。
要快。它应该只复制已修改的文件或新创建的文件。考虑到的大小
my_projects_linux
超过 50 GB,复制所有内容需要一个多小时,这太慢了。实际上,自上次备份以来通常只有几 MB 发生了变化,因此理论上复制速度可以更快。
怎么做?
我在 Google 上搜索到带有该-u
标志的 cp 可能符合我的需求。这样可行吗(例如,它能正确处理子目录的子目录吗)?
另外,将文件系统存储在外部磁盘上是进行备份的合适方法吗?还是有更高级的方法?例如,使用云?请注意,更高级的方法应该很简单,否则它不会比执行一个 shell 命令的简易性更重要。
答案1
你正在描述rsync
设计的目的。来自man rsync
:
Rsync finds files that need to be transferred using a "quick
check" algorithm (by default) that looks for files that have
changed in size or in last-modified time. Any changes in the
other preserved attributes (as requested by options) are made on
the destination file directly when the quick check indicates
that the file’s data does not need to be updated.
关于网络也有很多废话,但它也乐于做本地工作。
基本上你所需要的只是:
rsync -rtv /home/my_projects_linux /mounted_drive/my_projects_linux
有很多可用的选项,但-rtv
会同步r递归地,保持吨imecodes 相同,同时五详细了解它正在做的事情。
答案2
回答你的第二个问题,一种更奇特的备份方式是rdiff-backup
。
rdiff-backup 将一个目录备份到另一个目录,可能通过网络。目标目录最终成为源目录的副本,但额外的反向差异存储在该目标目录的特殊子目录中,因此您仍然可以恢复一段时间前丢失的文件。其理念是结合镜像和增量备份的最佳功能。rdiff-backup 还保留子目录、硬链接、dev 文件、权限、uid/gid 所有权、修改时间、扩展属性、acls 和资源分支。
如果你真的想使用基于云的:我使用付费订阅的 CrashPlan。然后你绝不不再需要考虑手动备份。
答案3
我知道这个问题已经有了可接受的答案。但是,我想添加一个跨平台 GUI 解决方案,因为我看到你也使用 Windows。我使用相同的目的免费文件同步.它也是牙线。
配置绝对直观,您可以保存不同的同步作业。
还有一个 ppa,但目前它不包含 14.04 的最新版本。要通过 ppa 安装:
sudo apt-add-repository ppa:freefilesync/ffs
sudo apt-get update