rsync
rsync是linux系统下的远程数据同步工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。rsync使用“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此针对非第一次同步传输速度快。
rsync特性
1、可以镜像保存整个目录和文件系统
2、容易做到保持原来文件的权限、Owner、Group、修改时间、软硬链接、文件acl、文件属性信息等等
3、文件传输效率高,使用同步算法,只比较变化的
4、支持匿名传输,方便网站镜像;也可以做验证,加强安全
5、可以使用rsh ssh 方式来传输文件,也可直接通过socket方式
6、无特殊权限就可以安装,linux操作系统默认安装
注意
若使用普通身份执行rsync,同步后的文件的属主将改变为这个普通用户身份
使用超级用户身份运行rsync命令,同步后的文件的属主将保持原来的用户身份
rsync格式
安装
yum install rsync
centos7下启动/查看/开机启动
systemctl start rsynvd.service
systemctl status rsynvd.service
systemctl enable rsynvd.service
本机
rsync [option] … src dest
本地shell备份
备份到本机
rsync [option] … [user@]host:src dest
rsync root@192.168.100.38:/data/warehouse /data/warehouse
备份到远程机器
rsync [option] … src [user@]host:dest
rsync /data/warehouse root@192.168.100.38:/data/warehouse
访问rsync服务器备份:
备份到本机
rsync [option] … [user@]host::src dest
备份到远程机器
rsync [option] … src [user@]host::dest
备份到本机
rsync [option] … rsync://[user@]host[:port]/src dest
备份到远程机器
rsync [option] … src rsync://[user@]host[:port]/dest
rsync常用选项
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-b 当有变化时,对目标目录中的旧版文件进行备份
-e 指定替代 rsh 的 shell 程序
-r 对子目录以递归模式处理,类似cp时的-r选项
-v 同步时详细输出模式,可以知道同步的过程
-q 精简输出模式
-l 保留软链结
-L 加上该选项后,同步软链接时会把源文件给同步
-H 保持硬链接文件
-p 保持文件权限
-o 保持文件属主信息
-g 保持文件属组信息
-D 保持设备文件和特殊文件信息
-t 保持文件的时间属性
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
-z 在传输文件时进行压缩处理
--delete 删除DEST中SRC没有的文件
--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-e参数说明
使用基于ssh的rsync同步数据可以使用 -e ssh 参数,CentOS默认指定使用ssh作为远程Shell,若在其他系统上执行rsync 命令,为确保使用ssh作为远程 Shell,请添加 -e ssh 参数。
rsync -a -e ssh --delete --exclude=.svn --exclude='logs/*' --exclude='contrib/hod/logs/*' "$SPARK_MASTER/" "${SPARK_HOME}"