rsync远程同步_第1页
rsync远程同步_第2页
rsync远程同步_第3页
rsync远程同步_第4页
rsync远程同步_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章第六章 rsync远程同步远程同步 理论部分 rsync远程同步 如何创建一个软RAID磁盘阵列? 如何创建iSCSI对象、划分LUN空间? 在客户机中如何发现、挂载iSCSI存储设备? 课程回顾 学会配置rsync备份源 学会rsync下行、上行异地备份 学会rsync+inotify实时备份 技能展示 本章结构 rsync远程同步远程同步 上行、下行同步操作上行、下行同步操作 编写编写rsync备份脚本备份脚本 配置配置SSH备份源备份源 配置配置rsync备份源备份源 配置配置rsync源服务器源服务器 使用使用rsync备份工具备份工具 配置配置inotify实时同步实时同步rs

2、ync+inotify结合使用结合使用 一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步 官方网站:/ 关于rsync rsync同步源 指备份操作的远程服务器,也称为备份源 主要包括两种:rsync源、SSH源 配置rsync源服务器 服务器服务器A A (rsync或SSH,同步源) 上行同步(上传) 服务器服务器B BAAAA (rsync客户机,发起端) InternetInternet 下行同步(下载) 基本思路 启用sshd服务,并分别建立上传、下载用户 为需要同步的目录设置访问权限

3、 应用示例 用户rget、rput,分别可下载、上传 操作的目录为 /var/www/html/ Nginx服务对 /upload/ 子目录有写入权限 配置SSH源2-1 文件和目录ACL mount参数:acl、noacl 主要管理工具:setfacl、getfacl 配置SSH源2-2 rootlocalhost # chown -R rput:rput /var/www/html rootlocalhost # setfacl -R -m user:nginx:rwx /var/www/html/upload rootlocalhost # setfacl -m default:user

4、:nginx:rwx /var/www/html/upload rootlocalhost # ls -ld /var/www/html/ /var/www/html/upload/ drwxr-xr-x 3 rput rput 4096 11月 29 01:35 /var/www/html/ drwxrwxr-x+ 2 rput rput 4096 11月 29 01:35 /var/www/html/upload/ 递归添加递归添加ACLACL条目条目 为目录设置默认为目录设置默认ACLACL rootlocalhost # getfacl /var/www/html/upload/ us

5、er:rwx user:nginx:rwx default:user:rwx default:user:nginx:rwx rootlocalhost # setfacl -R -b /var/www/html/upload/ 清除所有清除所有ACLACL条目,条目, 改用改用“-x user:.-x user:.”可只删除指定可只删除指定ACLACL条目条目 新添加的新添加的ACLACL权限控制权限控制 基本思路 建立rsyncd.conf配置文件、独立的账号文件 启用rsync的-daemon模式 应用示例 用户backuper,允许下行同步 操作的目录为 /var/www/html/ 配

6、置rsync源3-1 配置文件rsyncd.conf 需手动建立,语法类似于Samba配置 认证配置auth users、secrets file,不加则为匿名 rsync账号文件 采用“用户名:密码”的记录格式 独立的账号数据,不依赖于系统账号 配置rsync源3-2 rootlocalhost # vi /etc/rsyncd_users.db backuper:pwd123 othername:123456 rootlocalhost # chmod 600 /etc/rsyncd_users.db 每行一个用户记录每行一个用户记录 rootlocalhost # vi /etc/rsy

7、ncd.conf uid = nobody gid = nobody use chroot = yes address = port 873 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid hosts allow = /24 wwwroot path = /var/www/html comment = Document Root of read only = yes dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z auth

8、users = backuper secrets file = /etc/rsyncd_users.db 允许访问的客户机地址允许访问的客户机地址 同步时不再压缩的文件同步时不再压缩的文件 用户认证信息用户认证信息 启用rsync服务 通过-daemon独自提供服务 或者,通过超级服务器xinetd提供服务 配置rsync源3-3 rootlocalhost # rsync -daemon rootlocalhost # netstat -anpt | grep rsync tcp 0 0 00:873 :* LISTEN 21182/rsync rootl

9、ocalhost # kill $(cat /var/run/rsyncd.pid) rsyncrsync服务的服务的PIDPID文件文件 rootlocalhost # vi /etc/xinetd.d/rsync service rsync disable = no server = /usr/bin/rsync server_args = -daemon log_on_failure += USERID rootlocalhost # yum -y install xinetd rootlocalhost # service xinetd start 启用启用xinetdxinetd即自

10、动接管即自动接管rsyncrsync服务服务 rsync命令的用法 基本格式:rsync 选项 原始位置 目标位置 常用选项: n-a:归档模式,递归并保留对象属性,等同于 - rlptgoD n-v:显示同步过程的详细(verbose)信息 n-z:在传输文件时进行压缩(compress) n-H:保留硬连接文件 n-A:保留ACL属性信息 n-delete:删除目标位置有而原始位置没有的文件 n-checksum:根据对象的校验和来决定是否跳过文 件 使用rsync备份工具3-1 -r-r:递归模式,包含目录及子目录中所有文件:递归模式,包含目录及子目录中所有文件 -l-l:对于符号链接文

11、件仍然复制为符号链接文件:对于符号链接文件仍然复制为符号链接文件 -p-p:保留文件的权限标记:保留文件的权限标记 -t-t:保留文件的时间标记:保留文件的时间标记 -g-g:保留文件的属组标记(仅超级用户使用):保留文件的属组标记(仅超级用户使用) -o-o:保留文件的属主标记(仅超级用户使用):保留文件的属主标记(仅超级用户使用) -D-D:保留设备文件及其他特殊文件:保留设备文件及其他特殊文件 备份操作类型 本地同步 nrsync . 本地目录1 本地目录2 rsync+ssh同步 nrsync . SSH源 本地目录 nrsync . 本地目录 SSH源 rsync+rsync同步 n

12、rsync . rsync源 本地目录 nrsync . 本地目录 rsync源 使用rsync备份工具3-2 下行同步(下载)下行同步(下载) 上行同步(上传)上行同步(上传) rsync同步操作示例 下行SSH源:/var/www/html /wwwroot 下行rsync源:wwwroot共享 /myweb 上行SSH源:/usr/./HTML/zh_CN /var/www/html 使用rsync备份工具3-3 rootlocalhost # mkdir /wwwroot rootlocalhost # rsync -avzH -delete rget:/var/

13、www/html/ /wwwroot rgets password: receiving incremental file list created directory /wwwroot html/ html/index.html html/style/ 验证验证SSHSSH用户用户rgetrget的密码的密码 rootlocalhost # mkdir /myweb rootlocalhost # rsync -avzH -delete backuper:wwwroot /myweb Password: receiving incremental

14、file list ./ index.html index.php 验证验证rsyncrsync用户用户backuperbackuper的密码的密码 rootlocalhost # cd /usr/share/doc/HTML/ rootlocalhost HTML# rsync -rlvz -delete zh-CN/ rput:/var/www/html rputs password: sending incremental file list deleting index.php feedback.html index.html common/

15、 common/RHEL6_720 x60.png 验证验证SSHSSH用户用户rputrput的密码的密码 请思考: 如何配置可匿名访问的rsync服务器? 根据源的不同,rsync的备份操作有哪几种类型? 使用rsync命令时,SSH源、rsync源分别如何表示? 小结 SSH源的免交互处理 采用SSH密钥对验证,将密钥短语设为空 rsync脚本的交互处理2-1 rootlocalhost # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/roo

16、t/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. rootlocalhost # ssh-copy-id rget rgets password: 直接回车设为空串直接回车设为空串 将公钥分发至远程服

17、务器将公钥分发至远程服务器 rsync源的免交互处理 设置环境变量:RSYNC_PASSWORD 或者,使用 -password-file= 选项调用密码文件 rsync脚本的交互处理2-2 rootlocalhost # vi /root/rsync_get_wwwroot.sh #!/bin/bash CMD=/usr/bin/rsync RSYNC_USER=backuper RSYNC_PASSWROD=pwd123 ARGS=-az -delete SRC=:wwwroot DST=/wwwroot mkdir -p $DST $CMD $ARGS $RSYNC

18、_USER$SRC $DST 自动读取密码,免除交互自动读取密码,免除交互 定期同步的不足 执行备份的时间固定,延迟明显、实时性差 当同步源长期不变化时,密集的定期任务是不必要的 实时同步的优点 一旦同步源出现变化,立即启动备份 只要同步源无变化,则不执行备份 rsync实时同步 Linux内核的inotify机制 从版本2.6.13开始提供 可以监控文件系统的变动情况,并作出通知响应 辅助软件:inotify-tools 关于inotify 服务器服务器A A (rsync或SSH,备份源) 上行同步(上传) 服务器服务器B BAAAA (rsync客户机,发起端) InternetInte

19、rnet inotify触发 本地文件系统 调整inotify内核参数 max_queue_events:监控队列大小 max_user_instances:最多监控实例数 max_user_watches:每个实例最多监控文件数 rsync+inotify实时同步3-1 rootlocalhost # vi /etc/sysctl.conf fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576 rootlocalhost #

20、 sysctl -p 应大于监控目标的总文件数应大于监控目标的总文件数 安装inotify-tools辅助工具 inotifywait:用于持续监控,实时输出结果 inotifywatch:用于短期监控,任务完成后再出结果 rsync+inotify实时同步3-2 rootlocalhost # inotifywait -mrq -e modify,create,move,delete /var/www/html Setting up watches. Beware: since -r was given, this may take a while! Watches established.

21、 /var/www/html/ CREATE index.php /var/www/html/ MODIFY index.php /var/www/html/ MOVED_FROM index.php /var/www/html/ MOVED_TO test.php -m-m,持续进行监控,持续进行监控 -r-r,递归监控所有子对象,递归监控所有子对象 -q-q,简化输出信息,简化输出信息 -e-e,指定要监控哪些事件类型,指定要监控哪些事件类型 通过inotifywait触发rsync同步操作 使用while、read持续获取监控结果 根据结果可以作进一步判断,决定执行何种操作 rsync+

22、inotify实时同步3-3 rootlocalhost # vi /opt/inotify_rsync.sh #!/bin/bash INOTIFY_CMD=inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/ RSYNC_CMD=rsync -azH -delete /var/www/html/ rput:/var/www/html $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if $(pgrep rsync | wc -l) -le 0 ; then $RSYNC_CMD fi done 读取输出的监控记录读取输出的监控记录 如果如果rsyncrsync未在执行,则立即启动未在执行,则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论