zoukankan      html  css  js  c++  java
  • rsync 实现实时增量备份

    Rsync + Crontab实现定时文件同步(首次全量+后续增量) 2015-04-14 19:02:11

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lu2yu.blog.51cto.com/10009517/1632410

    一、简介

        在配置HA的时候,需要配置多个节点的配置,节点间的配置很多时候都是类似重复的,也许可以通过scp等手段实现,但是每次的更改都需要手动scp也显得麻烦,这边我们可以通过rsync的方式来实现文件的同步。

        使用rsync+crontab做定时同步时,主服务器端开启rsync守护进程,而镜像服务器是运行rsync客户端,平时一般会利用crontab定时获取rsync服务器上的数据。

    二、配置

      ①rsync的服务端(文件发送出去端)

        以守护进程的形式后台运行

     1.rsync的安装和文件包组成

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    [root@web1 ~]# yum install rsync
    [root@web1 ~]# rpm -ql rsync 
    /etc/xinetd.d/rsync         ##基于xinetd的管理
    /usr/bin/rsync              ##rsync工具
    /usr/share/doc/rsync-3.0.6 
    /usr/share/doc/rsync-3.0.6/COPYING 
    /usr/share/doc/rsync-3.0.6/NEWS 
    /usr/share/doc/rsync-3.0.6/OLDNEWS 
    /usr/share/doc/rsync-3.0.6/README 
    /usr/share/doc/rsync-3.0.6/support 
    /usr/share/doc/rsync-3.0.6/support/Makefile 
    /usr/share/doc/rsync-3.0.6/support/atomic-rsync 
    /usr/share/doc/rsync-3.0.6/support/cvs2includes 
    /usr/share/doc/rsync-3.0.6/support/deny-rsync 
    /usr/share/doc/rsync-3.0.6/support/file-attr-restore 
    /usr/share/doc/rsync-3.0.6/support/files-to-excludes 
    /usr/share/doc/rsync-3.0.6/support/git-set-file-times 
    /usr/share/doc/rsync-3.0.6/support/logfilter 
    /usr/share/doc/rsync-3.0.6/support/lsh 
    /usr/share/doc/rsync-3.0.6/support/mnt-excl 
    /usr/share/doc/rsync-3.0.6/support/munge-symlinks 
    /usr/share/doc/rsync-3.0.6/support/rrsync 
    /usr/share/doc/rsync-3.0.6/support/rsyncstats 
    /usr/share/doc/rsync-3.0.6/support/savetransfer.c 
    /usr/share/doc/rsync-3.0.6/tech_report.tex 
    /usr/share/man/man1/rsync.1.gz 
    /usr/share/man/man5/rsyncd.conf.5.gz

         软件包组成中没有提供配置文件和相应的文件,因此需要自行添加如下:

    1
    2
    3
    4
    5
    [root@node1 ~]# mkdir /etc/rsyncd  ##创建配置目录 
    [root@node1 ~]# touch /etc/rsyncd/rsyncd.conf  ##创建主配置文件 
    [root@node1 ~]# touch /etc/rsyncd/rsyncd.secrets  ##创建用户密码文件 
    [root@node1 ~]# chmod 600 /etc/rsyncd/rsyncd.secrets ##修改用户密码文件 
    [root@node1 ~]# touch /etc/rsyncd/rsyncd.motd   ##创建定义服务器信息的文件

      

    2.编辑配置rsyncd.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    [root@node1 ~]# vi /etc/rsyncd/rsyncd.conf
    # Minimal configuration file for rsync daemon 
    # See rsync(1) and rsyncd.conf(5) man pages for help
    # This line is required by the /etc/init.d/rsyncd script 
    pid file /var/run/rsyncd.pid 
    port = 873   ##监听端口 
    address = 192.168.192.208  ##监听地址 
    #uid = nobody 
    #gid = nobody   
    uid = root 
    gid = root
    use chroot = yes   ##是否限制在指定目录,为了安装,一般需要启用 
    read only = no
     
    #limit access to private LANs 
    hosts allow=192.168.192.0/255.255.255.0   ##允许网段 
    hosts deny=*
     
    max connections = 5 
    motd file /etc/rsyncd/rsyncd.motd
    #This will give you a separate log file 
    #log file = /var/log/rsync.log
    #This will log every file transferred - up to 85,000+ per user, per sync 
    #transfer logging = yes
    log format = %t %a %m %f %b 
    syslog facility = local3 
    timeout = 300
     
    ##定义一个同步目录
    [webdir] 
    path = /var/www/html 
    list=yes 
    ignore errors 
    auth users = apache 
    secrets file /etc/rsyncd/rsyncd.secrets  ##指定上述账号密码文件 
    comment = web home
    exclude =   data/   ##排除目录

    3.添加账号密码文件

    1
    2
    3
    [root@node1 ~]# vi /etc/rsyncd/rsyncd.secrets
    apache:123456
    ##注意,这个账号是系统账号,但没有使用系统账号的密码,而是自定义密码

    4.让rsync以守护进程运行

    1
    [root@node1 ~]# /usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

    5.开机自动启动

    1
    [root@node1 ~]# echo "/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local

    ②配置rsync的客户端

      客户端同样需要安装rsync,但是只需要配置如下文件即可

    1
    2
    3
    [root@node2 ~]# mkdir /etc/rsyncd  ##创建配置目录 
    [root@node2 ~]# echo “passowd123”> /etc/rsyncd/rsyncd.password  ##创建密码文件,密码为服务器端rsyncd.secrets文件中的密码。
    [root@node2 ~]# chmod 600 /etc/rsyncd/rsyncd.password

    ③同步操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [root@node2 ~]# rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@192.168.192.208::webdir /var/www/html/
     
    说明:
    --delete:本地与服务器完全一样,如果本地存在不一样的,则删除,慎用
    --password-file:指定密码文件,如果不指定,则需手动输入
    -a :参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件; 
    -z :传输时压缩; 
    -P :传输进度; 
    -v :传输时的进度等信息
    apache@192.168.192.208::webdir  用双冒号引用主配置文件中的定义资源,也可以使用单引号跟绝对路径
     
    以后同步时,只会同步新增内容。

    1
    rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@192.168.192.208::webdir
  • 相关阅读:
    Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown block 解决办法
    unknown host www.baidu.com 解决方法
    [Errno 256] No more mirrors to try 解决方法
    超级优化锁定系统重要文件防止篡改
    隐藏linux软件及内核版本
    linux内核参数注释与优化
    Linux内核参数基础优化
    ulimit linux文件配置
    history历史记录控制
    TMOUT优化终端超时
  • 原文地址:https://www.cnblogs.com/ruiy/p/6084748.html
Copyright © 2011-2022 走看看