rsync
Rsync
rsync命令常用工具命令 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
语法
1 | rsync [OPTION]... SRC DEST |
对应于以上六种命令格式,rsync有六种不同的工作模式:
- 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。如:rsync -a /data /backup
- 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。如:rsync -avz *.c foo:src
- 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。如:rsync -avz foo:src/bar /data
- 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。如:rsync -av root@192.168.78.192::www /databack
- 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。如:rsync -av /databack root@192.168.78.192::www
- 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://192.168.78.192/www
注意:使用
rsync
时要求双方机器都要安装rsync
选项
1 | -v, --verbose 详细模式输出。 |
示例
同步本地文件夹
1
rsync -avz src dest
拉取远程文件到本地
1
rsync -azve 'ssh' root@10.0.1.4:/root/logs .
使用ssh方式后台传输时可以配合sshpass指定密码
传送本地文件到远程
1
rsync -azve 'ssh' . root@10.0.1.4:/root/logs
指定SSH端口
1
rsync -azve 'ssh -p 9922' data root@10.0.1.4:/root/
删除远程有本地没有的文件
1
rsync -azve 'ssh' --delete data root@10.0.1.4:/root/
断线续传
-P
1
rsync -azvPe 'ssh' root@10.0.1.4:/root/logs .
–bwlimit // 限速
排除文件夹
1
rsync -avz --exclude ".git" src dest
参考
本站采用「署名 4.0 国际」进行许可。