我有一台带有 Samba Share 的 Ubuntu Server 12.4 LTS,我想将共享文件夹中的所有文件夹同步到 Windows Server (Win2k8R2)。到目前为止,我已经使用过 Lucky Back up、Freesync 和 Unison,但都失败了,并出现错误消息,甚至没有将数据复制到 Windows 服务器。
有什么想法我该如何实现这个目标吗?
答案1
您可以将 Windows 系统中的目标文件夹挂载为 Ubuntu 系统中的驱动器,并使用 rsync 实现您的目标:
rsync -rtv source_folder/ destination_folder/
在 source_folder 中,请注意我在末尾添加了一个斜杠,这样做可以防止创建新文件夹,如果我们不添加斜杠,则会在目标文件夹中创建一个名为源文件夹的新文件夹。因此,如果您想将名为 Pictures 的文件夹的内容复制到一个也名为 Pictures 但位于不同位置的现有文件夹中,则需要添加尾随斜杠,否则,将在我们指定为目标的 Pictures 文件夹内创建一个名为 Pictures 的文件夹。
该参数-r
表示递归,也就是说,它会复制源文件夹的内容,以及其中每个文件夹的内容。
该参数-t
使 rsync 保留从源文件夹复制的文件的修改时间。
该参数-v
表示详细,这个参数会打印命令执行的相关信息,比如成功传输的文件,所以我们可以以此作为一种方式来跟踪rsync的进度。
这是我经常使用的参数,因为我通常备份个人文件,并且它不包含诸如符号链接之类的内容,但使用 rsync 的另一个非常有用的参数是参数-a
。
rsync -av source/ destination/
该参数-a
还会使复制过程递归并保留修改时间,但此外,它还会将遇到的符号链接复制为符号链接,保留权限,保留所有者和组信息,并保留设备和特殊文件。如果您要复制用户的整个主文件夹,或者要将系统文件夹复制到其他地方,这将非常有用。