zoukankan      html  css  js  c++  java
  • RSYNC远程同步服务


    rsync安装
    yum -y install rsync
    master:
     vim /etc/rsyncd.conf
    uid = nobody        //用户名
    gid = nobody        //组别
    use chroot = yes      //禁锢在源目录
    address = 192.168.200.112      //监听地址
    port = 873          //监听端口
    log file = /var/log/rsyncd.log       //日志文件位置
    pid file = /var/run/rsyncd.pid      //存放进程ID文件位置
    hosts allow =192.168.200.0/24     //允许访问的客户端地址
    [wwwroot]                 //共享模块名称
       path = /var/www/html         //源目标的实际路径
       comment = Document Root os www.crushlinux.com     //描述信息
       read only = yes              //是否为只读
       dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z   //同步时不再压缩的文件类型
       auth users = backuper       //备份授权用户
       secrets file = /etc/rsyncd_users.db             //存放账户信息的数据文件
    保存退出
    vim/etc/rsyncd_users.db
     backuper:pwd123
    保存退出
    chmod 600/etc/rsyncd_users.db
    ls -ld /var/www/htm/
    drwxr-xr-x2 root root 64月212018/var/www/html/
    rsync  -daemon
    netstat -lnpt |grep :873
    关闭rsync
    kill $(cat /var/run/rsyncd.pid)
    编写rsync服务控制脚本:
    vim /etc/init.d/rsyncd
    #!/bin/bash
    #chkconfig:2345 80 20
    #description:sync server
    start () {
    netstat -lnpt | grep -q :873
    [ $? -ne 0 ] && rsync --deamon
    }
    stop () {
    netstat -lnpt | grep -q :873
    [ $? -ne 0 ] && kill $(cat /var/run/rsyncd.pid) && rm -rf /var/run/rsyncd.pid
    }
    status () {
    netstat -lnpt | grep -q :873
    [ $? -ne 0 ] && echo "Rsync Daemon is running."
    }
    case $1 in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart|reload)
    $0 stop
    $0 start
    ;;
    status)
    status
    ;;
    *)
    echo "用法:$0{START|STOP|RESTART|RELOAD|STATUS}"
    esac
     chmod +x /etc/init.d/rsyncd
     chkconfig --add rsyncd
     systemctl start rsyncd
    -------------------------------------------
    本地备份:备份源和发起端可以是一台机器
    第二台主机客户端: 
    yum -y install rsync
     rsync  /etc/fstab  /opt/
    rsync -rl  /etc/fstab /boot/grub/  /opt/
     rsync -avz backuper@192.168.200.112::wwwroot /root
    Password:  
     rsync -avz rsync://backuper@192.168.200.112/wwwroot/ /root/
                       rsync备份源的无交互验证方式:
    (1)通过export RSYNC_PASSWORD变量保存密码,rsync命令执行时可以自动读取该变量的值,在需要时发送给rsync服务器来进行验证
     export RSYNC_PASSWORD=pwd123
     rsync -avzH --delete backuper@192.168.200.112::wwwroot /myweb
    (2)通过--password-file选项指定存储密码的文件
    相对于SSH源的免交互措施来说,使用变量存放密码显得不够安全,因此可在脚本中使用,并将脚本的权限严格控制,避免密码泄漏。
     echo “pwd123”  > /etc/server.pass
     chmod 600 /etc/server.pass
     rsync -az --delete --password-file=/etc/server.pass backuper@192.168.200.112::wwwroot /myweb
    ==================================================
    RSYNC远程同步服务
    rsync(Remote Sync,远程同步)是一个开源的快速安全高效的异地备份工具,可以在不同的主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩。非常适合异地备份,镜像服务等应用,是一种常用的文件备份工具。
    rsync的官方站点:https://rsync.samba.org/
    FTP:文件传输协议
    samba:文件共享服务,共享文件夹
    rysnc一般系统都会有,如果没有可以用yum安装rysnc
    rysnc在生产环境中的使用场景:
    1、用于数据异地备份
    2、用于WEB集群中节点数据的批量更新
    3、用于本地YUM服务器与互联网镜像站软件同步
    在远程同步任务中,负责发起rsync同步操作的客户机成为发起端,而负责响应来自客户机的rsync同步操作的服务器成为备份源(同步源),同步源负责提供文档的原始位置,发起端对该位置具有读或写权限
    rsync作为同步源时以守护进程运行,为其他客户端提供备份源。配置rsync同步源需要建立配置文件/etc/rsyncd.conf,备份账号信息,然后将rsync程序以守护进程(--daemon选项)方式运行。
    rsync两种源模式:
    SSH备份源
    rsync备份源
    一、配置rsync备份源192.168.200.111
    rsync不仅用作远程同步发起端(客户端),也可以作为守护进程(服务端),为其他客户机提供备份源。
    1、建立/etc/rsyncd.conf配置文件
    2、为备份账户创建数据文件
    3、启动rsync服务进程
    1、建立/etc/rsyncd.conf配置文件,以源目录/var/www/html/,备份帐号backuper作为事例:
    vim /etc/rsyncd.conf
    uid = nobody      (用户名)
    gid = nobody      (组名)
    use chroot = yes     (禁锢在源码目录)
    address = 192.168.200.111   (监听地址)
    port = 873      (监听端口)
    log file = /var/log/rsyncd.log  (日志文件位置)
    pid file = /var/run/rsyncd.pid  (PID文件位置)
    hosts allow = 192.168.200.0/24  (允许访问地址)
    [wwwroot]      (共享名,给访问者看的,本地目录可以不是这个名字)
            path = /var/www/html   (文件真实路径)
            comment = Document Root os www.laowang.com  (描述信息,可以随便写)
            read only = yes         (只读)
            dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z   (这些结尾的文件不压缩)
            auth users = backuper        (授权备份用户名,和系统用户没有关联)
            secrets file = /etc/rsyncd_users.db     (保存auth users用户名和对应密码)
    vim /etc/rsyncd_users.db (编辑用户名和密码)
    backuper:pwd123   (用户名和密码用:分隔)
    chmod 600 /etc/rsyncd_users.db (由于保存密码,权限要给的严格一些)
    rsync --daemon (启动服务)
    netstat -lnpt | grep 873  (过滤端口号873)
    关闭服务
    kill $(cat /var/run/rsyncd.pid)
    如果关闭服务失败,是因为PID文件没有删除,删除即可正常开启或者关闭
    编写服务控制脚本
    二、使用rsync备份工具 192.168.200.112
    有了同步源服务器之后,就可以使用rsync工具来执行远程同步。以下操作都是客户端(发起端)执行。
    本地备份:备份源和发起端可以是一台机器
    rpm -q rsync (要保证第二台机器上有rsync)
    rsync /etc/fstab /opt    
    rsync -rl /etc/fstab /boot/grub /opt (把/etc/fstab /boot/grub两个文件同步到/opt下)
    rsync的命令格式及备份选项:
    命令格式:rsync [选项]... 原始位置 目标位置
    -r:递归模式,包含目录及子目录中所有文件
    -l:对于符号链接文件仍然复制为符号连接文件
    -p:保留文件的权限标记
    -t:保留文件的时间标记
    -g:保留文件的属组标记(仅超级用户使用)
    -o:保留文件的属主标记(仅超级用户使用)
    -D:保留设备文件及其他特殊文件
    -a:归档模式,递归并保留对象属性,等同于 -rlptgoD
    -v:显示同步过程的详细(verbose)信息
    -z:在传输文件时进行压缩(compress)
    -H:保留硬连接文件
    -A:保留ACL属性信息
    --delete:删除目标位置有而原始位置没有的文件
    --checksum:根据对象的校验和来决定是否跳过文件
    备份源的表示方法:
    在执行远程同步任务时,rsync命令需要制定备份源服务器中的资源位置。rsync同步源的资源表示方式有两种:
    用户名@主机地址:共享模块名称
    rsync://用户名@主机地址/共享模块名称
    192.168.200.111服务器端创建共享文件夹
    mkdir -pv /var/www/html
    在共享文件夹下创建测试文件
    touch /var/www/html/test1.txt
    192.168.200.112客户端,发起端下载共享目录测试文件
    两种格式:
    1、rsync -avz backuper@192.168.200.111::wwwroot /root
    2、rsync -avz rsync://backuper@192.168.200.111/wwwroot /root
    rsync默认支持增量,同步修改过或者新创建的文件
    优点:支持增量,每次传输的数据量不是很大
    缺点:如果源数据量特别大的时候,rsync传输特别慢,需要把全部文件扫描一遍,来识别哪些文件有变动,那些文件新增加的,然后再传输。
    编写rsync备份脚本:(在客户端操作)
    rsync备份源的无交互验证方式
    1、通过export RSYNC_PASSWORD变量保存密码,rsync命令执行时可以自动读取该变量的值,在需要时发送给rsync服务器来进行验证
    export RSYNC_PASSWORD=123456
    2、通过 --password-file选项指定存储密码的文件
    vim /etc/server.pass (建立密码存储文件)
    123456
    chmod 600 /etc/server.pass
    相对于SSH源的免交互措施来说,使用变量存放密码显得不够安全,因此可在脚本中使用,并将脚本的权限严格控制,避免密码泄漏。
    rsync -az --password-file=/etc/server.pass backuper@192.168.200.111::wwwroot /root
    可以创建周期计划任务crontab
    上传操作需要文件夹属主、组为nobody,而且同步操作是镜像两个文件夹,单独文件上传加--delete是不会删除原有文件的,只有两个文件夹互相同步的时候才可以
    假设环境
    111mysql数据库,备份出数据
    222备份存放位置
    这样要在222上配置rsync服务,
    并且授权账号backuper,
    还要把共享文件夹属主和属组改变为nobody,
    111mysql服务端上备份出数据,远程同步到222的共享文件夹上
     
  • 相关阅读:
    Android CTS(frome google)
    Android CTS
    【Linux】- 修改系统时间与时区
    【Linux】- CentOS查看IP
    【Linux】- Ubutnu UFW防火墙的简单设置
    【Linux】- Ubuntu安装nginx
    【Linux】- apt-get命令
    【Linux】- Ubuntu搭建FTP服务器
    【Linux】- Ubuntu 配置mysql远程访问
    【Linux】- Ubuntu安装redis,并开启远程访问
  • 原文地址:https://www.cnblogs.com/elin989898/p/11990385.html
Copyright © 2011-2022 走看看