• rsync远程同步


    1.rsyc基本概述
    1)remote sync(远程同步)
    2)开源
    3)备份
    4)官网:https://rsync.samba.org/
    5)端口:tcp 873
    6)运行模式:
    C/S:客户端 服务端
    B/S:浏览器 服务端
    7)常见备份方式
    完全备份:对所有数据做备份
    增量备份:只备份上一次备份之后增加的数据
    差异备份:备份是上一次完全备份后变化的差异

    常见备份组合
    完全+增量:一次完全+多次增量
    完全+差异:一次完全+一次差异

    2.rsync应用场景
    数据同步方式
    推:push,上传(upload)
    将客户端数据上传到rsync服务端
    所有主机推送本地数据至rsync备份服务器,会导致数据同步缓慢(适合少量数据备份)

    拉:pull,下载(download)
    将rsync服务端的数据下载到客户端
    rsync备份服务端拉取所有主机上的数据,会导致备份服务器开销大
    推拉是由客户端发起的

    3.rsync传输模式
    rsync大致分为三种数据传输模式
    -v 详细模式输出
    -z 传输时进行压缩以提高传输效率
    -a 以递归方式传输文件,并保持所有文件的属性
    -r 对子目录以递归模式,即目录下的所有目录都以同样的模式传输,注意是小写的r
    -P 显示同步的过程及传输时的进度等信息
    -e 使用信道协议,指定替代rsh的shell程序,例如ssh
    -n 测试选项,模拟执行
    -o 保持文件属主信息
    -p 保持文件权限
    -g 保持文件属主信息
    --exclued 指定排除不需要传输的文件模式(和tar参数一样)
    --delete 是目标目录内容和源文件保持一致,删除不同的文件
    --bwlimit=KBPS 限制传输速度
    本地方式:
    类似于cp命令 如下:
    rsync -avzropg 选项
    rsync -avz 只是作为增量备使用
    [root@keepalived01 ~]# rsync -avzropg /etc/passwd /data/
    passwd就会复制到/data/下

    如果让两个文件夹一模一样的话就要使用delete参数
    就是rsync -avz /data/ /opt/ --delete (完全一样)
    这时就会删除两个文件夹不一样的地方,直到完全一样

    远程方式:
    使用的是ssh协议,过程是加密,类似于scp命令
    tcp传输过程,每传输一个数据都会有连接的建立,维护,断开过程

    守护方式:
    服务端操作流程:
    守护进程传输方式:rsync自身非常重要的功能(不使用系统用户,更加安全)
    ----1.拉取rsync备份服务的backup模块数据至本地/mnt目录
    Pull:rsync [OPTION...] [USER@]HOST::SRC... [DEST]
    rsync ----命令
    [OPTION...] ----选项
    [USER@] ----远程主机用户(虚拟用户)
    HOST:: ----远程主机地址
    SRC... ----远程主机模块(不是目录)
    [DEST] ----远程主机数据备份至本地位置
    例子:# rsync -avz rsync_backup@192.168.20.21::backup/ /mnt/ --password-file=/etc/rsync.password

    ----2.将本地/mnt/目录推送至rsync备份服务器的backup
    Push:rsync [OPTION...] SRC... [USER@]HOST::DEST
    rsync ----命令
    [OPTION...] ----选项
    SRC... ----远程主机模块(不是目录)
    [USER@] ----远程主机用户(虚拟用户)
    HOST:: ----远程主机地址
    [DEST] ----将远程主机模块备份至本地位置
    例子:# rsync -avz /mnt/ rsync_backup@192.168.20.21::backup/ --password-file=/etc/rsync.password

    准备:

    192.168.20.21            服务端

    192.168.20.22            客户端

    服务端配置:
    1)安装软件包
    yum -y install rsync
    2)修改配置文件
    查找配置文件
    # rpm -qc rsync
    /etc/rsyncd.conf
    /etc/sysconfig/rsyncd
    # rpm -ql rsync | grep /etc/
    /etc/rsyncd.conf
    /etc/sysconfig/rsyncd
    修改配置文件 /etc/rsyncd.conf

    path = /backup
    uid = rsync
    gid = rsync
    port = 873
    fake super = yes
    use chroot = no
    max connections = 200
    timeout = 600
    ignore errors
    read only = false
    list = false
    auth users = rsync_backup
    secrets file = /etc/rsync.password
    log file = /var/log/rsyncd.log
    #########################################
    [backup]
    comment = welcome to oldboyedu backup!
    path = /backup

    3)创建程序用户

    # useradd -M -s /sbin/nologin rsync
    4)创建目录
    # mkdir [-p] /backup
    # chown -R rsync:rsync /backup
    5)创建虚拟用户认证文件
    # echo "rsync_backup:1" > /etc/rsync.password
    # chmod 600 /etc/rsync.password
    6)启动服务
    # systemctl start rsyncd
    # systemctl enable rsyncd
    查看端口号
    # ss -antulp | grep 873

    客户端操作流程:
    安装rsync包
    # yum -y install rsync
    客户端验证:
    查看报错日志文件:
    tail /var/log/secure
    tail /var/log/messages
    1)验证
    Access via rsync daemon: 守护进程方式传输
    Push:rsync [OPTION...] SRC... [USER@]HOST::DEST
    Pull:rsync [OPTION...] [USER@]HOST::SRC... [DEST]

    推:上传
    客户端推送/etc/至服务端/backup/
    # rsync -avz /etc/ rsync_backup@192.168.20.21::backup
    # mkdir /null/
    # rsync -avz /null/ rsync_backup@192.168.20.21::backup --delete 清空服务端的backup目录里面的文件

    拉:下载
    # cp -r /etc/hosts /etc/passwd /etc/fstab /backup
    ps:在cp命令中 前面指定文件再多都是源文件(/etc/hosts /etc/passwd /etc/fstab) 最后一个才是目标文件(/backup)
    客户端从服务端将backup模块下的内容下拉到本地/mnt/
    # rsync -avz rsync_backup@192.168.20.21::backup/ /mnt/

    排错注意:
    1)如果服务端密码文件(/etc/rsync.password)没有修改权限为600,会报错
    2)需要考虑服务端下拉的文件权限,主要是读权限

    4.免密
    1)方法一:适合终端执行指定用户密码文件
    在客户端创建密码文件,并给600权限
    # echo "1" > /etc/rsync.password
    # cat /etc/rsync.password
    1
    # chmod 600 /etc/rsync.password
    # rsync -avz rsync_backup@192.168.20.21::backup/ /mnt/ --password-file=/etc/rsync.password

    2)方法二:适合写脚本,强烈推荐方式
    在/etc/profile文件中定义全局变量
    export RSYNC_PASSWORD=1
    这样就不需要输入--password-file=/etc/rsync.password这句话了
    # rsync -avz rsync_backup@192.168.20.21::backup/ /mnt/

  • 相关阅读:
    WPF 插件开发(.NET Framework 3.5 System.Addin)
    如何:创建返回 UI 的外接程序
    WPF分析工具
    可视化的工具
    .NET Core入门程序
    我是如何同时拿到阿里和腾讯offer的 【转载】
    我的求职之路:9个offer,12家公司,35场面试,最终谷歌【转载】
    Mysql 配置文件和目录的合理分配
    修改socket文件, MySQL启动报错
    confluence + 禅道安装教程
  • 原文地址:https://www.cnblogs.com/zgqbky/p/15567589.html
Copyright © 2020-2023  润新知