美文网首页
rsync同步

rsync同步

作者: wangminglang | 来源:发表于2016-05-18 15:44 被阅读358次

    1、rsync简介

    Rsync是一个快速和异常灵活的文件复制工具,它能够通过remote shell (rsh,ssh)或remote rsync daemon 来实现本地到或从远程主机的复制。它提供了大量选项来控制行为的方方面面,能够弹性定义复制文件的属性,通过delta-transfer算法,只发送源和目标不同的文件来降低网络数据传输量。rsync作为增强的copy命令广泛的用于镜像和备份。

    rsync的额外特性:

    1、支持复制文件保存文件的软硬链接,属主,属组,权限等。

    2、类似于GNU tar的exclude ,exclude from选项。

    3、CVS排除模式,忽略CVS要求的相同文件。

    4、能够便用任何远程shell,如rcp、ssh等方式来传输文。

    5、不要求超级用户特权。

    6、流水式文件传输最小化传输延时。

    7、支持匿名或验证的rsync。

    在没有建立rsync服务器的情况下,我们可以利用rsync命令直接进行快速的差异备份

    2、命令格式

    #rsync [option] 源路径 目标路径

    其中:

    [option]:

    a:使用archive模式,等于-rlptgoD,即保持原有的文件权限

    z:表示传输时压缩数据

    v:显示到屏幕中

    e:使用远程shell程序(可以使用rsh或ssh)

    --delete:精确保存副本,源主机删除的文件,目标主机也会同步删除

    --include=PATTERN:不排除符合PATTERN的文件或目录

    --exclude=PATTERN:排除所有符合PATTERN的文件或目录

    --password-file:指定用于rsync服务器的用户验证密码

    源路径和目标路径可以使用如下格式:

    rsync://[USER@]Host[:Port]/Path     <--rsync服务器路径

    [USER@]Host::Path                         <--rsync服务器的另一种表示形式

    [USER@]Host:Path                          <--远程路径

    LocalPath                                       <--本地路径

    ※需要注意的是,来源或目的路径最少要有一个是本地路径,如果忽略本地路径,则只会列出远端的文件列表。

    例子:

    #rsync -ave ssh test:/home/ftp/pub/ /home/ftp/pub/

    把源路径中远端test机器上的/home/ftp/pub/目录中的内容,通过rsync同步到本地的/home/ftp/pub/目录下。

    ◎小心源路径结尾时候的/号,后缀/通知rsync复制该目录的内容,但不复制目录本身。

    例如:

    #rsync -ave ssh test:/home/ftp/pub /home/ftp/

    则会把pub目录整个同步到本地/home/ftp/路径中

    #rsync -azv --delete rsync://linuxing@192.168.1.100/blog

    /var/www/html/

    通过linuxing登陆到192.168.1.100中,同步rsync服务器的blog项到本地的/var/www/html/,并删除本地上源路径中不存在的文件或目录。

    ※千万要注意--delete参数,在使用此参数的时候,建议用绝对路径指定本地目录,防止清空当前目录。

    3、服务器端设置

    修改配置文件

    vi /etc/rsyncd.conf

    uid = nobody

    gid = nobody

    use chroot = no             # 不使用chroot

    max connections = 4

    log file = /var/log/rsyncd.log

    pid file = /var/run/rsyncd.pid

    lock file = /var/run/rsync.lock

    [test]                          #rsync区段

    path = /var/www/html/test       #需要同步的目录

    comment =  test folder          #注释

    ignore errors                   #忽略错误

    read only = yes                 #只读

    list = no                       #不能列表

    auth users = webrsync           #连接rsync服务的用户名

    secrets file = /etc/rsyncd.secrets    #指定存放帐号密码的位置

    创建帐号密码文件:

    vi /etc/rsync.pass

    webrsync:myrsynpass

    保存后,需要保证用户是root,权限是600,否则会出现验证错误。

    chown root.root /etc/rsync.pass

    chmod 600 /etc/rsync.pass

    相关文章

      网友评论

          本文标题:rsync同步

          本文链接:https://www.haomeiwen.com/subject/qvjwrttx.html