Rsync 使用指南

Rsync是个相当棒的同步工具,比如:

1. 如何做本地两个目录之间的同步?

rsync -av --delete --force ~/Desktop/Miscs/ /media/disk/DesktopMiscs 

这样就可以做~/Desktop/Miscs目录的镜像了。/media/disk是我的移动硬盘的挂载点。这里关键有个问题就是,一定要注意rsync中目录的表示方法,如果命令行这样写: 

rsync -av --delete --force ~/Desktop/Miscs/* /media/disk/DesktopMiscs 

那效果就和第一个命令行完全不一样了。第一个命令行是给Miscs目录做完全镜像,所以,命令执行完成后, /media/disk/DesktopMiscs目录中的内容就会和Miscs目录中的完全一样;但是,第二个命令行就达不到这样的效果,因为第二个命 令行中多了一个通配符*,所以,rsync就只会针对Miscs中现有的文件进行操作,而Miscs中不存在的文件或目录rsync是不会去操作的。这样 就会导致一个问题:如果文件或目录在Miscs中不存在而在/media/disk/DesktopMiscs目录中该文件或目录存在,那么,rsync 执行完成后,/media/disk/DesktopMiscs中这些多余的文件或目录就不会被删除,即使命令行中加了--delete, --force这样的option。

此外,rsync使用binary的方式操作所有的文件、目录,所以,不存在文 件/目录编码、乱码的问题。简言之,被备份的东西是什么编码,备份之后还是什么编码。如果您在查看rsync备份后的数据时,看到的是乱码,那就要检查你 现在查看这些文件的系统编码是不是能正确识别和显示备份文件/目录的编码了。

2. 如何通过网络做rsync同步,比如最常见的ssh?

rsync -av --force --delete --exclude 4.GTK+/ReferenceManual/ -e ssh super@192.168.0.100:/home/super/Access/ /home/super/Access/

* 192.168.0.100 needs openssh-server because, we operate on the laptop.
* "-e ssh" is the key point, it specifies the detail remote shell.

原文地址:https://www.cnblogs.com/super119/p/1904401.html