rsync

1 什么是Rsync? Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具。Rsync软件适用于unix/linux/windows等多种操作系统平台。 2 Rsync的特性如下: 支持拷贝特殊文件如链接文件,设备等 可以有排除(tar?find?)指定文件或目录同步的功能,相当于打包命令tar的排除功能 可以做到保持原文件或目录的权限,时间,软硬链接,属主,组等属性均不改变-p 可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar-N) 可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密) 可以通过socket(进程方式)传输文件和数据(服务端和客户端) 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像 3 Rsync一共几种模式? 单个主机本地之间的数据传输(此时类似于cp命令的功能) 借助rcp,ssh等通道来传输数据(此时类似于scp命令的功能) 以守护进程(socket)的方式传输数据(这个是rsync自身的重要功能) 4 rsync 命令常用参数选项说明: -v,--verbose 详细模式输出,传输时的进度等信息 -z,--compress 传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩。 -a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgD1(字母1) -r,--recursive 对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r -t,--times 保持文件时间信息 -o,--owner 保持文件属主信息 -p,--perms 保持文件权限 -g,--group 保持文件属组信息 -P,--progress 显示同步的过程及传输时的进度等信息 -D,--devices 保持设备文件信息 -l,--links 保留软链接 -e,--rsh=COMMAND 使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh --exclude=PATTERN 指定排除不需要传输的文件模式(和tar参数一样) --bwlimit=RATE limit socket I/O bandwidth 二, 开始部署rsync服务--Rsync服务器端A-Server操作过程: 1. 配置rsyncd.conf 首先确认软件是否安装:(which rsync) 没有就安装 : rpm -qa rsync 然后创建rsyncd.conf文件,并添加如下内容(文件默认不存在) uid = rsync# (用户) . gid = rsync# (组) . use chroot = no# 程序安全设置 . max connections = 200. # 客户端连接数 . timeout = 300 # 超时时间 . pid file = /var/run/rsyncd.pid# 进程号文件位置 . lock file = /var/run/rsync.lock# 进程锁 . log file = /var/log/rsyncd.log# 日志文件位置 . [backup] path = /backup/ # 使用目录 . ignore errors # 有错误时忽略 . read only = false#可读可写(true或false) . list=false# 阻止远程列表(不让通过远程方式看服务端有啥) . hosts allow = 192.168.232.0/24#允许IP . hosts deny = 0.0.0.0/32 #禁止IP . auth users = rsync_backup # 虚拟用户 secrets file = /etc/rsync.password#存放用户和密码的文件 rsyncd.conf参数 参数说明 uid=rsync rsync使用的用户。 gid=rsync rsync使用的用户组(用户所在的组) use chroot=no 如果为true,daemon会在客户端传输文件前“chroot to the path”。这是一种安全配置,因为我们大多数都在内网,所以不配也没关系 max connections=200 设置最大连接数,默认0,意思无限制,负值为关闭这个模块 timeout=400 默认为0,表示no timeout,建议300-600(5-10分钟) pid file rsync daemon启动后将其进程pid写入此文件。如果这个文件存在,rsync不会覆盖该文件,而是会终止 lock file 指定lock文件用来支持“max connections”参数,使得总连接数不会超过限制 log file 不设或者设置错误,rsync会使用rsyslog输出相关日志信息 ignore errors 忽略I/O错误 read only=false 指定客户端是否可以上传文件,默认对所有模块为true list=false 是否允许客户端可以查看可用模块列表,默认为可以 hosts allow 指定可以联系的客户端主机名或和ip地址或地址段,默认情况没有此参数,即都可以连接 hosts deny 指定不可以联系的客户端主机名或ip地址或地址段,默认情况没有此参数,即都可以连接 auth users 指定以空格或逗号分隔的用户可以使用哪些模块,用户不需要在本地系统中存在。默认为所有用户无密码访问 secrets file 指定用户名和密码存放的文件,格式;用户名;密码,密码不超过8位 [backup] 这里就是模块名称,需用中括号扩起来,起名称没有特殊要求,但最好是有意义的名称,便于以后维护 path 这个模块中,daemon使用的文件系统或目录,目录的权限要注意和配置文件中的权限一致,否则会遇到读写的问题 1. 案例:某DBA做数据同步,带宽占满,导致用户无法访问网站。 rsync -avz dbfile 10.0.0.41:/backup #没有给带宽做限制 rsync -avz --bwlimit=100 dbfile 172.16.1.41:/backup #限定了带宽 1. 创建共享目录及添加rsync程序用户 useradd -M -s /sbin/nologin rsync #创建rsync用户 2 启动服务: rsync --daemon 3 将A-Server上的/backup文件夹更改属主rsync chown -R rsync /backup 4 创建rsync虚拟账户名和密码 echo "rsync_backup:123456" >/etc/rsync.password 5 将账户密码文件的权限设置为600(必须否则失败) chmod 600 /etc/rsync.password 6 加入开机启动 echo "rsync --daemon" >> /etc/rc.local 开始部署rsync服务--Rsync客户端B-Server 1 只需要创建密码文件 echo "123456" > /etc/rsync.password 2 将密码文件的权限设置为600(必须否则失败) chmod 600 /etc/rsync.password Rsync 优缺点 1. rsync优点: 1,增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物)。 2,远程SHELL通道模式还可以加密(SSH)传输,socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务 2.rsync缺点: 1,大量小文件时候同步的时候,比对时间较长,有的时候,同步过程中,rsync进程可能会停止,僵死了。 2,同步大文件,10G这样的大文件有时也会出问题,中断。未完整同步前,是隐藏文件,可以通过续传(--partial)等参数实现传输 3,一次性远程拷贝可以用scp,大量小文件要打成一个包再拷贝。(重要)
posted @ 2018-11-08 08:41  抱紧再见  阅读(213)  评论(0)    收藏  举报