简介
- rsync 是一款高效远程数据同步工具。
- rsync 能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输量。(增量同步)
- rsync 中的一项同类软件不常见的重要特性是每个目标的镜像只需发送一次。
- rsync 可以拷贝/显示目录内容,以及拷贝文件,并可选压缩以及递归拷贝。
- rsync 命令中,一个冒号走 ssh 协议,两个冒号走 rsync 协议
命令概览
本地: rsync [OPTION] SRC DEST 通过 ssh 访问远程机器: pull: rsync [OPTION] USER@HOST:SRC DEST push: rsync [OPTION] SRC USER@HOST:DEST 通过 rsync 守护进程访问远程机器: pull: rsync [OPTION] USER@HOST::SRC DEST rsync [OPTION] rsync://USER@HOST:PORT/SRC DEST push: rsync [OPTION] SRC USER@HOST::DEST rsync [OPTION] SRC rsync://USER@HOST:PORT/DEST
- 记得使用
--dry-run
预演,避免误操作
实例
推送(push)
推送单个文件(foo.txt)到远程主机目录
# ssh 方式 rsync -v /tmp/foo.txt dst_ip:/tmp/ # ssh 方式 rsync -v /tmp/foo.txt username@dst_ip:/tmp/ # ssh 免密(明文暴露了密码,不建议生产环境使用) sshpass -p password rsync /tmp/foo.txt username@dst_ip:/tmp/
推送某个目录的所有文件到远程主机目录
rsync -av /tmp/ dst_ip:/tmp/ # 显示统计信息 rsync -avh --stats /tmp/ dst_ip:/tmp/
推送某个目录的所有文件到远程主机目录,并删除远程目录中多余的文件(及子目录)
rsync -av --delete /tmp/ dst_ip:/tmp/
递归删除某个远程目录
# 递归删除 dst_ip::/tmp/test 目录下的所有文件,及 test 目录本身 rsync -av --delete --include=test/*** --exclude=* /tmp/empty/ dst_ip::/tmp/test # 等价于 rsync -av --delete --include=test/ --include=test/** --exclude=* /tmp/empty/ dst_ip::/tmp/test
从 Windows 推送 MongoDB 数据到 Ubuntu
rsync -avPh --stats /cygdrive/e/mongo/ mongodb@192.168.0.129::mongo
列出远程目录
rsync --list-only username@servername:/directoryname/
删除单个文件
rsync -avpz --delete --include='xxx.txt' --exclude='*' ./ 192.168.0.39::/tmp/qbit/ --dry-run
拉取(pull)
- 从 Ubuntu 服务器备份 MongoDB 数据到 Windows
# rsync 协议
rsync -avPh --stats mongodb@192.168.0.129::mongo/ /cygdrive/e/mongo
- 从 Ubuntu 服务器备份 Elasticsearch 数据到 Windows
# ssh 协议
rsync -avPh --stats es@192.168.1.46:/data/es_data/ /cygdrive/h/es_data/
本文出自 qbit snap
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。