zoukankan      html  css  js  c++  java
  • rsync详解

     Rsync简介

    1.Rsync英文全称Remote synchronization,从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似ssh带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,Rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令,但同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。

    2.一个rsync相当于scp,cp,rm,但是还优于他们每一个命令。在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据。

    Rsync的特性

    Rsync的特性如下:

    • 支持拷贝特殊文件如链接文件,设备等
    • 可以有排除(tar?find?)指定文件或目录同步的功能,相当于打包命令tar的排除功能
    • 可以做到保持原文件或目录的权限,时间,软硬链接,属主,组等属性均不改变-p
    • 可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar-N)
    • 可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
    • 可以通过socket(进程方式)传输文件和数据(服务端和客户端)
    • 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像

    部署

    首先需要安装rsync和openssh-client两个软件: 

    openssh-clients ----实现ssh通道传输数据 
    1)配置rsyncd.conf 
    首先确认 rsync软件是否安装 : 
    Rpm -qa rsync 
    Vim /etc/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

    # 可读可写(true或false) read only = false

    # 阻止远程列表(不让通过远程方式看服务端有啥) list=false

    # 允许IP hosts allow = 192.168.197.0/24

    # 禁止IP hosts deny = 0.0.0.0/32

    # 虚拟用户 auth users = rsync_backup

    # 存放用户和密码的文件 secrets file = /etc/rsync.password

    ##rsync_config______end## 

    2)创建共享目录及添加rsync程序用户 
    useradd -M -S /sbin/nologin rsync 
    mkdir /backup 
    3)启动服务 
    rsync --daemon 
    netstat -antup | grep rsync 
    4)将服务器端上的/backup文件夹更改属主属组 
    chown -R rsync /backup 
    ll -d /backup 
    5)将账户密码文件的权限设定为600 
    Echo “rsync_backup:123456” > /etc/rsync.password 
    6)加入开机自启动 
    Echo “rsync --daemon” >> /etc/rc.local

    如何重启rsync服务? 
    pkill rsync 关闭rsync服务 
    rsync --daemon 启动rsync服务 
    二 部署rsync客户端 
    1)检查rsync是否安装 
    rpm -qa rsync 
    1)创建密码文件 
    echo “123456” >> /etc/rsync.password 
    2)将密码文件的权限设置为600 
    chmod 600 /etc/rsync.password 
    ll -d /etc/rsync.password 
    测试: 
    1)将客户端的(指定目录/目录内容)推送到服务器端的指定目录下 
    Rsync -avz /data/ rsync_backup@192.168.200.128::backup --password-file=/etc/rsync.password 
    命令说明: 
    -avz:保持稳健各项属性不变,-v显示同步信息 -P显示具体同步过程 
    /backup/:要推送的内容所在目录 
    rsync_backup:服务器端rsync服务的同步的用户名(非Linux用户) 
    192.168.200.128:rsync服务器IP地址 
    backup:rsync服务器配置文件里的模块名 
    --password-file=/etc/rsync.password:免密码的操作,指定密码文件位置,如果不写,则会要求用户交互式输入密码。(如果想挂定时任务,必须得非交互式) 
    2)将服务器端的指定目录下的内容推送到客户端,同步 
    Rsync -avz rsync_backup@192.168.200.128::backup /data --password-file=/etc/rsync.password 
    3)将服务器端指定目录下的全部内容排除某目录或文件后,同步到客户端 
    rsync -avz --exclude=a --exclude=chen/3 --exclude=chen/4 rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password 
    4)让客户端的指定目录内容始终和rsync服务端始终保持一致 
    Rsync -avz --delete rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password

    Rsync 优点和缺点 
    1)增量备份,支持socket进程(daemon),集中备份 
    2)远程SHELL通道模式还可以加密(ssh)传输

    3)大量小文件同步的时候,比对时间较长,有时候在同步过程中,rsync进程可能会停止僵死了 
    4)同步大文件,10G以上的有时会出现问题,(中断) 
    5)一次性拷贝可以使用scp,大量小文件打成一个包在拷贝

    1.9.1 Rsync服务端排错思路 
    查看rsync服务配置文件路径是否正确,正确的默认路径为:/etc/rsyncd.conf 
    查看配置文件里host allow,host deny,允许的IP网段是否是允许客户端访问的ip网段 
    查看配置文件中path参数里的路径是否存在,权限是否正确(正常应为配置文件中的UID参数对应的属主和组) 
    查看rsync服务是否启动。查看命令为:ps -ef|grep rsync。端口是否存在netstat -antup |grep 873 
    查看iptables防火墙和selinux是否开启允许rsync服务通过,也可以考虑关闭。 
    查看服务端rsync配置的密码文件是否为600的权限,密码文件格式是否正确,正确格式为:用户名:密码,文件路径和配置文件里的secrect files参数对应。 
    如果是推送数据,要查看下,配置rsyncd.conf文件中用户是否对模块下目录有可读写的权限。 
    1.9.2 Rsync客户端排错思路 
    查看客户端rsync配置的密码文件是否600的权限,密码文件格式是否正确,注意:仅需要有密码,并且和服务器端的密码保持一致。 
    用telnet连接rsync服务器ip地址873端口,查看服务是否启动(可测试服务端防火墙是否阻挡)telnet 192.168.197.129 873 
    客户端执行命令时:rsync -avzP rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password 
    此命令的细节要记清楚,尤其192.168.197.129::backup 处的双冒号及其后的backup为模块名称

  • 相关阅读:
    蓝桥网试题 java 基础练习 特殊的数字
    蓝桥网试题 java 基础练习 杨辉三角形
    蓝桥网试题 java 基础练习 查找整数
    蓝桥网试题 java 基础练习 数列特征
    蓝桥网试题 java 基础练习 字母图形
    蓝桥网试题 java 基础练习 01字串
    蓝桥网试题 java 基础练习 回文数
    蓝桥网试题 java 基础练习 特殊回文数
    Using text search in Web page with Sikuli
    each of which 用法
  • 原文地址:https://www.cnblogs.com/666boke/p/9933105.html
Copyright © 2011-2022 走看看