zoukankan      html  css  js  c++  java
  • 九、搭建备份服务器 使用rsync服务

    简介

    Rsync是开源快速、多功能,可以实现全量和增量的本地或者远程数据同步备份的优秀工具。增量备份效率更高,可以同步内容也可以同步属性
    [root@backup-41 ~]# rpm -qa rsync
    rsync-3.0.6-12.el6.x86_64
    特性:
    1、支持拷贝特殊文件如链接文件和设备等
    2、可以有排除指定文件或目录同步的功能
    3、可以做到保持源文件和目录的权限
    4、可以实现增量同步
    5、可以使用rcp,rsh,ssh等方式配合传输文件、
    6、可以通过socket进程方式传输文件和数据,服务端和客户端
    7、支持匿名的或认证(无需系统用户)的进程模式传输
    场景:
    定时备份,增量备份,实时备份
    

    工作方式

    第一种方式 local本地复制 相当于cp
    第二种方式 通过远程的shell进行数据传输
    	pull 从远端拉到执行命令的服务器
    	push 从执行命令的服务器推到远端
    第三种方式 
    rsync客户端之间的
    	pull 拉
    	push 推
    

    第一种local方式参数

    v :详细输出模式,传输时候的进度等信息
    z:传输时进行压缩可以提高传输效率
    a:归档模式,表示递归方式传输文件,保持所有文件属性
    a把下面的信息全部包含
    r:对子目录以递归模式,目录下所有目录都同样传输
    t:保持文件时间信息
    o:保持文件属主信息
    g:保持文件权限
    -g:保持文件属组信息
    --exclude=PATTERN指定排除不需要传输的文件模式	,指定文件排除
    -exclude-from=file (文件名所在的目录文件)排除多个文件
    --bwlimit=RATE limit socket I/Obandwidth  限速
    --delete             保持两个目录一致
    

    例子:

    复制的功能:
    [root@backup-41 ~]# cp -a /etc/hosts /tmp/
    [root@backup-41 ~]# rsync /etc/hosts /mnt/  这里复制的时候注意,/etc/这个就是复制/etc里面的内容,/etc不带斜线那么就是复制etc下面所有的内容
    
    复制属性:  avz  = vzrtopg
    [root@backup-41 ~]# rsync vzrtopg /etc/host /mnt/
    rsync: link_stat "/root/vzrtopg" failed: No such file or directory (2)
    rsync: link_stat "/etc/host" failed: No such file or directory (2)
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
    
    删除功能:   适用于本地和远端保持一致的情况
    本地没有,远端也没有。本地没有,远端有,也会被删除
    适用于两个目录或者服务器之间完全一样的情况、
    rsync –avz –delete /本地  /远端
    

    第二种方式使用远端的shell

    借助通道,必须知道对方的密码
    使用-e参数,使用ssh通道的方式
    rsync 参数 源文件 –e ‘ssh –p 22’ 对方用户名@ip地址:/远程目录
    [root@backup-41 /]# rsync -avz /etc/hosts -e 'ssh -p 22' root@10.0.0.31:/mnt
    The authenticity of host '10.0.0.31 (10.0.0.31)' can't be established.
    RSA key fingerprint is 50:c8:39:43:5f:c3:fd:7b:0a:4c:7d:1a:ab:51:c4:cd.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.0.0.31' (RSA) to the list of known hosts.
    root@10.0.0.31's password: 
    sending incremental file list
    hosts
    
    sent 124 bytes  received 31 bytes  20.67 bytes/sec
    total size is 158  speedup is 1.02 

    第三种以socket的方式传输数据 

    搭建rsync服务daemon守护进程 873端口,然后在其他服务器上(客户端)用rsync命令

    注意:1、无论使用pull还是push都是在客户端执行的

    2rsync是搭建在backup备份服务器上面的

    配置文件/etc/rsyncd.conf
    	#用户uid
    uid = rsync
    #用户gid
    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
    #只写
    read only = false
    list = false
    #允许网段,一般内网网段
    hosts allow = 172.168.1.0/24
    #拒绝网段这个和上面留一个
    #hosts deny = 0.0.0.0/32
    #链接虚拟账户
    auth users = rsync_backup
    #虚拟账户密码文件
    secrets file = /etc/rsync.password
    2、创建虚拟账户
    [root@backup-41 ~]# useradd rsync -s /sbin/nologin -M
    [root@backup-41 ~]# tail -1 /etc/passwd
    rsync:x:501:501::/home/rsync:/sbin/nologin
    3、启动
    [root@backup-41 ~]# rsync --daemon
    [root@backup-41 ~]# ps -ef |grep rsync |grep -v grep
    root       1349      1  0 09:56 ?        00:00:00 rsync --daemon
    4、创建目录
    root@backup-41 ~]# mkdir /backup
    5、设置属主和组
    [root@backup-41 ~]# chown rsync.rsync /backup/
    [root@backup-41 ~]# ls -ld /backup/
    drwxr-xr-x 2 rsync rsync 4096 12月 28 09:58 /backup/
    6、设置rsync的密码和访问权限
    [root@backup-41 ~]# vim /etc/rsync.passwd
    [root@backup-41 ~]# cat /etc/rsync.passwd 
    rsync_backup:123456
    [root@backup-41 ~]# chmod 600 /etc/rsync.passwd 
     [root@backup-41 ~]# ll /etc/rsync.passwd 
    -rw------- 1 root root 20 12月 28 10:00 /etc/rsync.passwd
    7查看端口对应的服务
    [root@backup-41 ~]# lsof -i :873
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    rsync   1349 root    4u  IPv4  11072      0t0  TCP *:rsync (LISTEN)
    rsync   1349 root    5u  IPv6  11073      0t0  TCP *:rsync (LISTEN)
    [root@backup-41 ~]# netstat -lntup|grep 873
    tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1349/rsync          
    tcp        0      0 :::873                      :::*                        LISTEN      1349/rsync
    8、加入开机自启动
    [root@backup-41 ~]# echo "/usr/bin/rsync --daemon">>/etc/rc.local 
    [root@backup-41 ~]# tail -1 /etc/rc.local 
    /usr/bin/rsync --daemon
    9、排错的话查看日志
    [root@backup-41 ~]# tail /var/log/rsyncd.log 
    2017/12/28 09:56:58 [1349] rsyncd version 3.0.6 starting, listening on port 873
    

    配置客户端

    1、首先创建和服务端一样的密码文件
    [root@NFS-31 ~]# vim /etc/rsync.password
    [root@NFS-31 ~]# vim /etc/rsync.password
    2、设置权限
    [root@NFS-31 ~]# chmod 600 /etc/rsync.password 
    [root@NFS-31 ~]# cat /etc/rsync.password 
    123456
    [root@NFS-31 ~]# ll /etc/rsync.password 
    -rw------- 1 root root 7 12月 28 10:15 /etc/rsync.password
    3、创建打包文件
    [root@NFS-31 ~]# mkdir -p /backup
    

    模拟推送

    推送 pull   客户端推送到服务端
    方法一
    在客户端创建一个文件a
    [root@NFS-31 backup]# touch a
    推送到服务端,免密码推送
    [root@NFS-31 backup]# rsync -avz /backup/ rsync_backup@172.168.1.41::backup/ --password-file=/etc/rsync.password 
    sending incremental file list
    ./
    a
    
    sent 879 bytes  received 30 bytes  1818.00 bytes/sec
    total size is 0  speedup is 0.00
    方法二
    [root@NFS-31 backup]# rsync -avz /backup/ rsync://rsync_backup@172.168.1.41/backup/子目录/ --password-file=/etc/rsync.password 
    sending incremental file list
    
    sent 840 bytes  received 8 bytes  1696.00 bytes/sec
    total size is 0  speedup is 0.00
    

    Rsync服务多模块

    2、创建这个模块目录并且授权
    [root@backup-41 backup]# mkdir /pyrene
    [root@backup-41 backup]# chown rsync.rsync /pyrene
     [root@backup-41 backup]# ls  -ld /pyrene
    drwxr-xr-x 2 rsync rsync 4096 12月 28 11:09 /pyrene
    3从客户端哪里推送,这里两种方法
    方法一
    [root@NFS-31 backup]# rsync -avz /backup rsync://rsync_backup@172.168.1.41/pyrene --password-file=/etc/rsync.password 
    sending incremental file list
    
    sent 857 bytes  received 9 bytes  1732.00 bytes/sec
    total size is 0  speedup is 0.00
    方法二
    [root@NFS-31 backup]# rsync -avz /backup/ rsync_backup@172.168.1.41::pyrene --password-file=/etc/rsync.password 
    sending incremental file list
    
    sent 840 bytes  received 8 bytes  1696.00 bytes/sec
    total size is 0  speedup is 0.00
    

    排除同步客户端指定  加上—exclude参数

    rsync优点:

    1、增量备份,支持socket,集中备份

    2、远程shell可以使用加密传输

    缺点:

    1、大量小文件同步时间比较长

    2、同步大文件10g大文件有时候会中断,可以通过断点续传等实现传参

    一次性远程拷贝可以用scp

    Rsync是开源快速、多功能,可以实现全量和增量的本地或者远程数据同步备份的优秀工具。增量备份效率更高,可以同步内容也可以同步属性

    [root@backup-41 ~]# rpm -qa rsync

    rsync-3.0.6-12.el6.x86_64

    特性:

    1、支持拷贝特殊文件如链接文件和设备等

    2、可以有排除指定文件或目录同步的功能

    3、可以做到保持源文件和目录的权限

    4、可以实现增量同步

    5、可以使用rcprshssh等方式配合传输文件、

    6、可以通过socket进程方式传输文件和数据,服务端和客户端

    7、支持匿名的或认证(无需系统用户)的进程模式传输

  • 相关阅读:
    xiaota-banzhuren-login.vue-重置密码
    xiaota-banzhuren-login.vue
    xiaota-global-index
    xiaota-router-index
    tab表格嵌套tab表格
    xiaota-selectarr
    xiaota-getlunardate
    xiaota-format
    xitaota-DataTime
    xiaota-axioslmport
  • 原文地址:https://www.cnblogs.com/pyrene/p/8134944.html
Copyright © 2011-2022 走看看