如何自动归档目录?

Bha*_*wan 48 backup

我想做一种方式同步。

我有Folder A我的电脑,其不断与内容更新。
另一个Folder B用于外部硬盘驱动器上的备份目的。

现在我期望的是,文件夹 A 中存在的任何额外内容都应该转到文件夹 B。但是,存在于 B 中而不是 A 中的内容“不应复制到 A”中。

简而言之,备份文件夹可以从源文件夹复制所有内容,但不应将任何内容从备份文件夹复制到源文件夹。

Pan*_*her 65

听起来像是 rsync 的完美任务

sudo rsync -az /path_to/A /path_to/B
Run Code Online (Sandbox Code Playgroud)

-a 存档模式(暗示递归,将符号链接复制为符号链接,保留所有者、修改时间、组、所有者、特殊和设备文件)

-z 压缩数据

如果您希望从 B 中的文件中删除在 A 中删除的文件,请使用--delete选项

有关其他信息,请参阅:

https://help.ubuntu.com/community/rsync

您可以从 cron 运行 rsync

sudo crontab -e
Run Code Online (Sandbox Code Playgroud)

添加每小时任务

@hourly rsync /path_to/A /path_to/B
Run Code Online (Sandbox Code Playgroud)

https://help.ubuntu.com/community/CronHowto

  • 如果文件夹中有文件夹,您将需要使用 -r 选项。 (7认同)
  • 我参加聚会有点晚了,但是要在连接硬盘驱动器时运行同步脚本,您应该使用 udev。不久前查看这个问题。http://askubuntu.com/questions/25071/how-to-run-a-script-when-a-distinct-flash-drive-is-mounted (2认同)

小智 15

我建议为此目的使用 rsync。Rsync 非常快速、稳定且用途广泛。http://help.ubuntu.com/community/rsync上有很好的介绍

如果您愿意,还有一个可选的图形前端:grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB
Run Code Online (Sandbox Code Playgroud)

上面的命令将从文件夹 A 复制到文件夹 B,但不包括 dir1。旗帜是

-a preserves time stamps
-z is to enable compression
-v verbose
Run Code Online (Sandbox Code Playgroud)

还有更多可用的选项。


小智 8

我总是发现 Unison 非常有帮助。它有一个基于文本或基于 GUI 的界面,还有很多不同的选项可以将其调整为您想要的(稍微摆弄一下)。第一次同步需要相当长的时间,但之后就很棒了。您可以根据需要使其单向同步,但它几乎会自动同步。它也可以根据您的选择从备份中删除或不删除。

您还可能会发现 ubuntu 文件格式支持的权限问题,但可能不会出现在外部硬盘驱动器中(取决于外部硬盘驱动器是否将用于 Windows 机器,这可能是一件好事),所以您可能希望在没有权限的情况下进行同步。

无论如何,好消息是,在本教程中,设置一次相对简单,此后,只要您想这样做,它就是一个 GUI 界面。

这是有关它的一些信息:http : //www.ubuntugeek.com/unison-file-synchronization-tool.html

这是教程:http : //www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial