rsync基本用法

rsync是一种远程和本地文件同步工具,它可以实现远程和本地文件的增量同步,从而减少传输的数据量。

同步目录
rsync -r dir1/ dir2

上面的命令表示把dir1下的所有文件复制到dir2,如果目标目录不存在将会自动创建。-r表示递归,包含该文件夹下的所有目录和文件。注意,dir1后面的/不能省略,省略之后会在dir2下创建一个dir1文件夹。

更常见的用法是使用-a代替-r,它除了可以递归同步,还可以保留符号链接、特殊文件和设备文件、修改时间、组、所有者和权限等信息。

rsync -a dir1/ dir2
试运行

在执行rsync命令之前,应该始终检查参数是否输错,rsync提供-n参数可以试运行命令,-v表示输出执行过程的详细信息

rsync -anv dir1/ dir2
与远程同步

本地传输到远程

rsync -a ~/dir1 username@remote_host:remote_directory

远程传输到本地

rsync -a username@remote_host:~/dir1 local_directory

如果修改了ssh端口,需要加上-e参数指定新的端口

rsync -a -e 'ssh -p 10021' ~/dir1 username@remote_host:remote_directory
压缩传输

rsync可以对传输的内容进行压缩,从而减少传输时间,具体做法是加上-z参数

rsync -az ~/dir1 username@remote_host:remote_directory
续传和进度

-P标志结合了--progress--partial,可以恢复中断和显示传输进度

rsync -azP ~/dir1 username@remote_host:remote_directory
完全同步

默认情况下,源目录删除了某个目录,目标目录不会同步删除,可以使用--delete参数来更改这个预设

rsync -a --delete ~/dir1 username@remote_host:remote_directory
排除和包含

--exclude--include用来指定哪些目录和文件需要排除或者包含进来

rsync -a --exclude='node_modules' ~/dir1 username@remote_host:remote_directory

上述命令将不同步node_modules文件夹,如果想保留目录,可更改为node_modules/*

文件备份

rsync支持对源文件进行备份,语法如下

rsync -a --delete --backup --backup-dir=~/backups ~/dir1 username@remote_host:remote_directory

你可能感兴趣的:(rsync基本用法)