rsync 命令是一个快速简便、功能强大的远程(或本地)文件数据同步(复制)工具。它可以复制本地数据到远程主机,也可以通过可连接远程的 shell 复制远程主机的数据到本地。rsync 提供了大量的命令选项来可以灵活控制同步行为的各个细节方面。
rsync 采用“增量传输”算法,即每次传输文件数据的部分,而不是整个文件数据,通过这种方式极大地减少了传输数据的大小,所以速度非常快。rsync 广泛地应用于数据备份与镜像数据。
命令形式
rsync 共有三大工作模式,细分五个工作模式。
本地工作模式
rsync [OPTION...] SRC... [DEST]
拷贝本地 SRC 到目标 DEST。
通过远程 shell 操作模式
如通过 rsh 或 ssh 可以本地与远程数据进行传输,分为拉取(pull)操作和推送(push)操作。
pull 操作:
rsync [OPTION...] [USER@]HOST:SRC... [DEST]
push 操作:
rsync [OPTION...] SRC... [USER@]HOST:DEST
通过 rsync 后台程序操作模式
通过本地的 rsync 后台也可以进行本地与远程数据之间的 pull 和 push 操作。
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
命令选项
- -b, --backup
- 创建备份(参照 --suffix 和 --backup-dir)。
- -b, --backup-dir=DIR
- 将备份文件存放在指定的目录下。
- -b, --suffix=SUFFIX
- 指定备份文件的后缀。
- -l, --links
- 软链接也复制。
- -p, --perms
- 保留文件对应的权限属性。
- --password-file=FILE
- 从指定的文件获取密码相关信息。
- -r, --recursive
- 对目录的操作,递归操作。
- -t, --times
- 保留文件的修改次数信息。
- -v, --verbose
- 详细的日志信息输出。
常用命令
同步本地的指定 war 包到远程主机的指定目录下:
rsync -rblptDv --suffix=.`date +%Y%m%d-%H%M%S` ./build/libs/knowledgedict.war lv@10.10.10.119::/data --password-file=/etc/rsync.pass