zoukankan      html  css  js  c++  java
  • CentOS 7.2 Ubuntu 18部署Rsync + Lsyncd服务实现文件实时同步/备份

    发送端配置:

    一、配置密钥

    1. 主/从服务器之间启用基于密钥的身份验证。登录发送端服务器并用 " ssh-keygen " 命令生成公共或私有的密钥。

    2. 使用 " ssh-copy-id " 复制密钥文件到接收端服务器。

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@IP
    把生成的公钥发送到对方的主机上去,用ssh-copy-id命令,自动保存在对方主机的/root/.ssh/authorized_keys文件中去
    [root@localhost ~ 09:16:45&&26]# ssh 192.168.1.160 #需要登录密码 
    [root@localhost ~ 09:16:45&&26]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.160 
    [root@localhost ~ 09:16:45&&26]# ssh 192.168.1.160 #免密登录 

    输入登录密码

    问题1:ssh:Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open

    若提示“Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open”,并且断开连接。

    仔细阅读了一下ssh文档和这句提示,大概的意思时ssh的私有密钥的权限开放尺度太大了,可以供人随意欣赏了,ssh自身的策略关闭了ssh。

    解决方案:将权限由0644降低为0600

    chmod 0600 ~/.ssh/id_rsa

    问题2:ssh免密登录出现问题再重新写入key的时

    解决办法是加参数ssh-copy-id -f root@IP强制重新写入或者写入新的key ssh-keygen -R IP(B),前者可行 写入后能正常登录

     加-f的时候需要尝试登录一下------>实际上 

    客户端执行ssh-copyid 服务端用户名@服务端ip此步骤需要输入密码。
    执行成功后会在服务端生成~/.ssh/authorized_keys文件,文件内容和客户端生成的id_rsa.pub内容完全一致。

    再次执行ssh 用户名@ip 就不用输入密码了。

    二、安装rsync + lsyncd

    centos7:  yum -y install lsyncd   
    ubuntu18: apt install lsyncd

    看具体情况 安装lsyncd依赖包
    centos的配置文件是/etc/lsyncd.conf
    
    ubuntu的配置文件是/etc/lsyncd/lsyncd.conf.lua
    
    且ubuntu要手动创建/etc/lsyncd文件夹、log文件、status文件,centos不用 其他都一样
    

    三、配置lsyncd

          1.如果有example案例文件复制成配置文件

    cp /usr/share/doc/lsyncd-2.1.5/examples/lrsync.lua /etc/lsyncd.conf
    

      2. 编辑lsyncd配置文件

    centos 7   
    位置:/etc/lsyncd.conf
    ---- -- User configuration file for lsyncd. -- -- Simple example for default rsync, but executing moves through on the target. -- -- For more examples, see /usr/share/doc/lsyncd*/examples/ -- -- 分发服务器 settings { logfile ="/var/log/lsyncd/lsyncd.log", ---->需要配置或创建具体的文件目录或者文件 statusFile = "/var/log/lsyncd/lsyncd.stat", statusInterval = 1,
    maxProcesses = 10, ---->这里变成10会报错 只能1个进程
    nodaemon = false,
    maxDelays = 7
    } sync{ default.rsyncssh, source="/www/wwwroot/www.xxx.com", host="192.168.0.1", init = false, --->一般为false 服务启动的时候不会报错 targetdir="/www/wwwroot/test.com", delete = true, delay = 0, rsync = { binary = "/usr/bin/rsync", archive = true, --归档 compress = true, --压缩 verbose = true, owner = true, --属主 perms = true, --权限 _extra = {"--bwlimit=2000"}, }, ssh = { port = 22 } } sync{ default.rsyncssh, source="/www/wwwroot/www.xxx.com", host="192.168.0.2", init = false, targetdir="/www/wwwroot/test.com", delete = true, delay = 0, rsync = { binary = "/usr/bin/rsync", archive = true, --归档 compress = true, --压缩 verbose = true, owner = true, --属主 perms = true, --权限 _extra = {"--bwlimit=2000"}, }, ssh = { port = 22 } }

    双向同步

    ubuntu 18
    文件位置: /etc/lsyncd/lsyncd.conf.lua
    settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsyncssh, source = "/www/wwwroot/test.com", host = "47.244.107.27", targetdir = "/www/wwwroot/www.XXX.com", init = false, delay=0, rsync = { binary = "/usr/bin/rsync", archive = true, compress = true, --压缩传输默认为true。在带宽与cpu负载之间权衡,本地目录同步可以考虑把它设为false verbose = true }, ssh = { port = 22 } }

    四、启动服务,并设置开机启动

    1. 启动lsyncd服务

    -----centos7
    lsyncd /etc/lsyncd.conf   ---->检查配置信息是否正确
    systemctl start lsyncd
    systemctl status lsyncd
    systemctl restart lsyncd
    -----ubuntu18
    /etc/init.d/lsyncd restart
    /etc/init.d/lsyncd start
    /etc/init.d/lsyncd status ----------------------------

    2. 启动完成查看lsyncd状态,确保lsync启动成功

    3. 设置开机启动

    systemctl enable lsyncd
  • 相关阅读:
    財智V6.0(完美破解序列号特别版)
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    HDU1006
    HDU 1385 Minimum Transport Cost 最短路径题解
    fast-json.jar的用法
    curl命令具体解释
    mysql很全的和完整的总结
    MongoDB入门简单介绍
    Tuxedo入门学习
    BP神经网络基本原理
  • 原文地址:https://www.cnblogs.com/shione/p/10775649.html
Copyright © 2011-2022 走看看