rsync用于同步两个目录的文件。这里所说的目录,不局限于本地目录,也可以是远程目录。
rsync通过一套算法(The rsync Algorithm)来比较文件和确定文件的不同,以使同步所需传送的数据量尽可能地少。
和远端的文件进行同步时,需要本地和远程都安装有rsync程序。
rsync有两种工作模式:一种是远程的rsync工作于daemon模式,相当于一个服务器,本地的rsync直接和这台服务器通讯;一种是本地的rsync通过远程登录shell连接到远程并通过子进程启动远端的rsync程序。
# 从远程同步到本地 rsync -rv [email protected]:public_html/ . # 从本地同步到远程 rsync -rv . [email protected]:public_html/ # 打包远程文件到本地 # -a: archive mode, 相当于 -rlptgoD # -r : 递归同步所有目录 # -l : copy symlinks as symlinks # -p : preserve file permission # -t : preserve modification time # -o : preserve owenr # -g : preserve group #----------------------------------------- rsync -av [email protected]:public_html/ .
-r
表示递归同步所有目录,-v
表示verbose,输出更多信息。
-z
: 表示传输过程中对数据进行压缩-u
: 跳过目标目录中已经存在,并且比本地新的文件-b
: 备份目标目录中的文件
--backup-dir=../
--suffix=~
: 默认的后缀和Vim类似,为字符'~'