zoukankan      html  css  js  c++  java
  • rsync 实现文件同步 (重要数据通过rsyncr把数据同步到不同的两台服务器上,这样可以防止服务器的硬盘故障导致数据丢失) 客户端同步时如果要排某个目录

    rsync是unix系统下的数据镜像 备份工具,一般linux系统都 自带:

    # rpm -qa|grep rsync
    rsync-3.0.9-17.el7.x86_64
    

     服务器端:10.100.0.123 同步目录:/data/samba/share

     客户端:10.100.0.198 同步到目录:/DataBack/SambaBack

    1:服务端配置:

    新建配置文件:/etc/rsyncd.conf #并配置以下内容:

    # cat /etc/rsyncd.conf 
    uid=nobody //运行rsync守护进程的用户
    git=nobody //运行rsync守护进程的组
    use chroot = no //不使用chroot
    max connections = 10 //最大连接数,0为不限制
    pid file = /var/run/rsyncde.pid //pid文件存放位置 
    lock file = /var/run/rsync.lock //锁文件存放位置 
    log file = /var/log/rsyncd.log //日志记录文件 的存放位置
    Timeout = 300 //通过该选项可以覆盖客户指定的ip超时时间,通过该选项可以确保rsync服务器
    不会永远等待一个崩溃的客户端,超时单位为秒钟,0表示没有超时定义,这也是默认值,
    对于匿名rsync服务器来说,一个理想的数字是600
    Log format = %t %a %m %f %b
    [backup] //这里是认证的模块名,在client端需要指定
    #path=/home/source/
    path=/data/tmp/samba/share/ //需要做镜像目录
    ignore errors //可以忽略一些无关的IO错误
    read only = yes //该选项设定是否允许客户上传文件
    list = no //不允许列文件 
    auth users = rsync //认证的用户名
    secrets file = /etc/rsyncd.secrets //秘密文件
    hosts allow = 10.100.0.198 //允许主机或网段
    hosts deny = 0.0.0.0/0 //禁止主机
    

     创建密码文件,并增加用户和密码:

    # cat /etc/rsyncd.secrets 
    rsync:rsync
    

     更改密码文件权限:

    # chmod 0600 /etc/rsyncd.secrets
    # ll -h /etc/rsyncd.secrets 
    -rw------- 1 root root 12 May 11 13:27 /etc/rsyncd.secrets
    

    # /usr/bin/rsync --daemon

    启动服务默认端口:873

    客户端:

    客户端就不用启动rsync服务了

    创建密码文件,文件名自定义,但内容需要填相标服务授权密码

    # cat /etc/rsyncd.secrets 
    rsync
    #列改文件权限
    #chmod 0600 /etc/rsyncd.secrets
    

     在客户端去同步服务端的数据,所以要在服务端运行:

    rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@10.100.0.123::backup /DataBack/SambaBack
    

     参数详解:

    v:传输时的进度等信息,z:表示压缩,r:是递归,t:保持文件原有时间,o:保持文件原有属主,P:传输进度,g:保持文件原有用户组
    --progress :指显示
    --delete:指如果服务器端删除了这一文件,那么客户端也想应把文件删除,保持真正的一致
    --password-file=/etc/sysncd.secrets:认证密码
    rsync:认证用户
    backup:认证模块
    

    写脚本并结合计划任务来定时同步数据:

    # cat /data1/sh/rsync_samba.sh 
    #!/bin/bash
    rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@10.100.0.123::backup /DataBack/SambaBack
    查看定时任务:
    0 2 * * * cd /data1/sh &&  ./rsync_samba.sh
  • 相关阅读:
    行转列 && 字段拆分
    sqlserver 生成随机值
    mysql查询增加自增列
    Graphx二度关系
    IDEA创建scala项目
    kibana安装
    二十五、Hadoop学记笔记————Hive复习与深入
    二十六、Hadoop学习笔记————Hadoop Yarn的简介复习
    二十四、Hadoop学记笔记————Spark的架构
    二十三、Hadoop学记笔记————Spark简介与计算模型
  • 原文地址:https://www.cnblogs.com/bass6/p/6841057.html
Copyright © 2011-2022 走看看