发送端配置:

一、配置密钥

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

CentOS 7.2 Ubuntu 18部署Rsync + Lsyncd服务实现文件实时同步/备份的更多相关文章

  1. CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (二)

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

  2. CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (三)

    配置过程中遇到的错误与查看日志 以下错误是在服务正常开启的情况下发生的,请先查看服务是否正常启动. 一.错误 1. rsync: failed to set times on "." ...

  3. CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (一)

    接收端配置: 1.安装rsync yum -y install rsync 2.配置同步模块 1. 编辑同步配置文件 vi /etc/rsyncd.conf 2. 同步模块配置参数 # any nam ...

  4. Rsync + Lsyncd服务实现文件实时同步/备份

    1.接受端安装rsync yum -y install rsync 2.配置同步模块 vim /etc/rsyncd.conf # any name you like [backup] # desti ...

  5. rsync+sersync实现数据文件实时同步

    一.简介 sersync是基于Inotify开发的,类似于Inotify-tools的工具: sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字: ...

  6. rsync+inotify百万级文件实时同步

    实验环境:Centos7.4 目的:将源服务器的文件实时同步至目标服务器 源服务器:10.11.1.107 目标服务器:10.11.1.106 分别在两个节点安装rsync yum -y instal ...

  7. 使用rsync+inotify-tools+ssh实现文件实时同步

    假设某服务器架构中有两台web服务器(IP为192.168.1.252和192.168.1.254),一台代码更新发布服务器(IP为192.168.1.251),需要同步的目录是/data/www/, ...

  8. linux使用rsync+inotify-tools+ssh实现文件实时同步

    假设某服务器架构中有两台web服务器(IP为192.168.1.252和192.168.1.254),一台代码更新发布服务器(IP为192.168.1.251),需要同步的目录是/data/www/, ...

  9. rsync+inotify 实现服务器之间目录文件实时同步(转)

    软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文 ...

随机推荐

  1. Spring 完成自动注入(autowire)

    目录 两个测试类 普通方式手动注入 普通方式注入的缺点 自动注入的介绍 配置自动注入的方式 配置全局自动注入 局部单独配置 利用注解实现自动注入 两个测试类 package cn.ganlixin.p ...

  2. Windows下安装配置MongoDB

    Windows下安装配置MongoDB 一,介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB ...

  3. Django(六)Session、CSRF、中间件

    大纲 二.session 1.session与cookie对比 2.session基本原理及流程 3.session服务器操作(获取值.设置值.清空值) 4.session通用配置(在配置文件中) 5 ...

  4. Docker 案例: 在容器中部署静态网站

    ----------------知识点------------ 容器的端口映射: docker  run  [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...

  5. Java的常量和变量

    一.标识符 如类名,数字不能作为标识符的首字母(以字母或者下划线或者$开头且不能有空格) 注意和Python的区别,Python中标识符由字母.下划线和数字组成,且数字不能开头,也是严格区分大小写(但 ...

  6. 在Asp.Net Core中集成Kafka

    在我们的业务中,我们通常需要在自己的业务子系统之间相互发送消息,一端去发送消息另一端去消费当前消息,这就涉及到使用消息队列MQ的一些内容,消息队列成熟的框架有多种,这里你可以读这篇文章来了解这些MQ的 ...

  7. react 事件绑定 es5/es6

    // vscode shift + ctrl + v 预览 es 5 写法 无参函数的绑定 first methods 定义函数: handleClick(e) { // e - 事件对象 e.pre ...

  8. 用video标签流式加载

    video标签 浏览器的video标签通常是接收一个src属性,然后浏览器就会根据这个src属性来自动加载视频.这个过程是浏览器来加载video的. 这种方式有什么问题吗? mp4文件不能流式加载 w ...

  9. vue路由参数变化刷新数据

    当路由到某个组件时,由于组件会复用,所以生命周期函数不会再次执行, 如果这个组件是模板组件,靠传入不同数据来显示的.那么,可能会发生参数变化了但页面数据却不变化. 问题 假如有个组件 info.vue ...

  10. Sublime Text3—自带快捷键介绍

    摘要: Sublime Text是个小巧便捷的编辑器,除了众多好用的插件外,还有它自带的快捷键,打代码事半功倍,不会用的赶紧看看吧! 其实菜单上都有,看不懂可以汉化,Key Bindings-Defa ...