zoukankan      html  css  js  c++  java
  • linux运维、架构之路-rsync

    1 、rsync介绍

    rsync是实现全量及增量的本地或远程数据镜像同步备份的工具

    rsync常用命令参数

    命令参数

    参数说明

    -a (--archive)

    归档模式,表示以递归方式传输文件,并保持所有文件属性,等于rtopgDl

    -v (--verbose)

    显示输出过程,传输时的进度等信息

    -z (--compress)

    传输时进行压缩以提高传输效率

    --exclude=/etc/hosts

    指定排除不需要传输的文件信息(和tar参数一样)

    --exclude-from=file

    文件名所在的目录文件,可以实现排除多个文件(和tar参数一样)

    --bwlimit=PATE

    limit I/O bandwidth;KBytes per second

    limit socket I/O bandwidth限速功能

    --delete

    让目标目录SRC和源目录数据DST一致,无差异同步数据

    2、rsync特性

    ①支持拷贝特殊文件如软链接,设备等

    ②排除指定文件或目录同步的功能,相当于打包命令tar排除功能

    ③ 保持原文件或目录的权限、时间、硬链接、属主、组等属性不改变

    ④实现增量同步,只同步发生变化的数据,传输效率高

    ⑤可以使用rcp,rsh,ssh等方式来配合传输文件

    ⑥可以通过socket(进程方式)传输文件和数据

    ⑦支持匿名的认证进程模式传输,实现方便安全数据备份

    3、rsync应用工作场景

    ①利用定时任务+rsync实现定时同步数据,主要同步的数据信息是网站内部人员使用的

    ②利用实时同步软件+rsync实现实时同步数据,主要同步的数据信息是网站用户上传的数据信息

    4、rsync数据传输方式

    ①主机本地之间的数据传输(此时类似于cp命令的功能)

    ② 借助rcp,ssh等通道来传输数据(此时类似于scp命令的功能)

    ③以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能),重点掌握

    5、rsync守护进程——服务端配置

    1、查看系统是否安装rsync软件

    rpm -qa rsync
    rsync-3.0.6-12.el6.x86_64

    2、rsync多模块主配置文件

    cat >/etc/rsyncd.conf<<EOF
    #rsync server#
    #created by yanxinjiang 2017-8-1
    ##rsyncd.conf start##
    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
    ignore errors
    read only = false
    list = false
    hosts allow = 172.16.1.0/24
    hosts deny = 0.0.0.0/32
    auth users = rsync_backup
    secrets file = /etc/rsync.password
    [backup]
    path = /backup
    [nfsbackup]
    path = /nfsbackup
    EOF

    3、创建备份目录及授权管理用户

    mkdir /backup -p
    chown -R rsync.rsync /backup/
    useradd rsync -s /sbin/nologin -M

    4、创建rsync服务端与客户端身份认证文件

    echo "rsync_backup:123456" >/etc/rsync.password
    chmod 600 /etc/rsync.password

    5、启动rsync服务

    [root@backup ~]# rsync --daemon
    [root@backup ~]# lsof -i:873
    COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    rsync   31209 root    3u  IPv4 7505812      0t0  TCP *:rsync (LISTEN)
    rsync   31209 root    5u  IPv6 7505813      0t0  TCP *:rsync (LISTEN)

    6、rsync守护进程——客户端配置

    1、创建客户端身份认证文件并授权

    [root@nfs01 ~]# echo "123456" >/etc/rsync.password
    [root@nfs01 ~]# chmod 600 /etc/rsync.password

    2、客户端测试rsync服务

    [root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    sending incremental file list
    sent 26 bytes  received 8 bytes  3.24 bytes/sec
    total size is 314  speedup is 9.24

    3、rsync无差异数据同步

    客户端推送
    [root@nfs01 data]# ls /data/ a b c d e f g pull.txt [root@nfs01 data]# rsync -avz /data --delete rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list data/ data/a data/b data/c

      服务端检查

    [root@backup backup]# ls /backup/data/

    a  b  c  d  e  f  g  pull.txt

    3、客户端推送遇到的问题

    错误1
    [root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
    Password: 
    @ERROR: auth failed on module backup
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
    
    错误2
    [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::/backup
    ERROR: The remote path must start with a module name not a /
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
    
    错误3
    [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
    @ERROR: Unknown module 'backup'
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
    错误4
    [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
    Password: 
    sending incremental file list
    hosts
    rsync: mkstemp ".hosts.5z3AOA" (in backup) failed: Permission denied (13)

    4、错误总结

    ①密码输入错误,虚拟用户名错误

    ②secrets file = /etc/rsync.password指定的密码文件和实际密码文件名称不一致

    ③/etc/rsync.password文件权限不是600

    ④rsync_backup:123456密码配置文件后面注意不要有空格

    ⑤rsync客户端密码文件中只输入密码信息即可,不要输入虚拟认证用户名称

    ⑥推送时双冒号后面为模块名backup,而不是路径/backup

    ⑦telnet连接rsync服务ip地址873端口,查看服务是否启动 telnet 172.16.1.41 873

    ⑧共享目录的属主和属组不正确,不是rsync;共享目录的权限不正确,不是755

    7、rsync客户端访问服务端原理

     

    成功最有效的方法就是向有经验的人学习!
  • 相关阅读:
    TortoiseSVN汉化包装了,不管用,仍然是英文菜单
    sql server 2000通过机器名可以连,通过ip连不上的问题
    C# 使用js正则表达式,让文本框只能输入数字和字母,最大长度5位
    打开office2010里面的access,总是提示要配置Office single image
    ghost 还原系统时,遇到error 10010,提示can not open image file
    C# 从excel里面复制的1万6千多条记录粘贴到FCKeditor里面,点保存的时候,保存不了,页面没有反应
    sqlserver中,查看某个函数的调用情况
    在sqlserver存储过程中给in参数传带逗号值的办法,如传'1','2','3'这样的
    sd_cms置顶新闻,背景颜色突击显示
    【一起学源码-微服务】Ribbon 源码二:通过Debug找出Ribbon初始化流程及ILoadBalancer原理分析
  • 原文地址:https://www.cnblogs.com/yanxinjiang/p/Demon.html
Copyright © 2011-2022 走看看