CentOS 7.2 Ubuntu 18部署Rsync + Lsyncd服务实现文件实时同步/备份

发送端配置:

一、配置密钥

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

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

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

输入登录密码

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

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

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

chmod 0600 ~/.ssh/id_rsa

二、安装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.luasettings {
   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

原文地址:https://www.cnblogs.com/shione/p/10775649.html

时间: 2024-11-09 00:55:13

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

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

配置过程中遇到的错误与查看日志 以下错误是在服务正常开启的情况下发生的,请先查看服务是否正常启动. 一.错误 1. rsync: failed to set times on "." (in backup): Permission denied (13) 更新.文件的时间失败:原因是权限不够. 此处为selinux权限限制,临时更改为setenforce 0,永久更改为修改/etc/sysconfig/selinux, 将 SELINUX=enforcing 修改为 SELINUX=d

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

接收端配置: 1.安装rsync yum -y install rsync 2.配置同步模块 1. 编辑同步配置文件 vi /etc/rsyncd.conf 2. 同步模块配置参数 # any name you like [backup] # destination directory for copy path = /usr/blues # hosts you allow to access hosts allow = 192.168.16.143 hosts deny = * list =

rsync+inotify 实现服务器文件实时同步

rsync+inotify 实现服务器文件实时同步 操作系统:CentOS 6.X 源服务器:192.168.80.132 目标服务器:192.168.80.128 目的:把源服务器上/data/app目录实时同步到目标服务器的/data/app下 具体操作: 第一部分:在目标服务器192.168.80.128上操作 一.在目标服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #SELINUXTYPE=targ

sersync2+rsync目录文件实时同步备份

说明: 192.168.1.2(sersync+rsync)---------------FTP 192.168.1.3(rsync)--------------------------backup 实验目的: 实时自动同步:192.168.1.2 ------->192.168.1.3到目录:/data/ftpdata ; 764  viconfxml.xml 765  ./GNU-Linux-x86/sersync2 -d -r confxml.xml 767  ./GNU-Linux-x8

rsync+inotify实现Git数据实时同步备份

定时备份和实时备份 说到备份,无疑于定时备份和实时同步备份.定时备份可以通过脚本或者Crontab来实现,而实时同步备份可以通过某些接口监控文件的各种变化情况来实现的(比如内核接口inotify):通过对比可以发现对数据信息要求高的环境使用实时同步备份可以更好更有利的保护数据的安全性. 软件介绍之rsync rsync说明 rsync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘中去.所以有时候要同步到磁盘中去的,而rsync说白了和复制差不多.能将一

rsync+inotify节点间文件实时同步

说明: 操作系统:CentOS 7.2 server服务器(代码.数据检入)server: SLB-1:10.171.63.120 client服务器(数据检出.主动推送)client:WWW:10.163.0.233 目的:把client服务器上/www/web目录实时同步到server服务器的/www/web下 ============================================================ 具体操作: 第一部分:在server--SLB-1_10.1

配置rsync+inotify实现站点文件实时同步

一.rsync简介 rsync是linux系统下的数据镜像备份工具.可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务器等应用. rsync的官方站点为http:rsync.samba.org/ 二.使用rsync备份工具 2.1.rsync命令的基本用法 用法类似于cp命令,例如将文件/etc/fstab 和目录/boot/grub同步备份到.opt目录下,其中-r表示递归整个目录,-l选项用来备份链接文

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

在某些服务器架构中,会遇到文件同步问题,例如需要做站点镜像备份,同步文件到多个CDN节点等.需要解决的主要有两个问题 1.如何实现文件同步问题? 2.何时执行同步操作? 文件同步可以使用rsync+ssh,什么时候自行同步操作呢?可能部分人会想到cron,这个没错,可以实现的,但是确实有点浪费资源,因为cron并不知道文件是否被修改过,只是不停的周期性的执行,如果文件修改后再执行同步操作,不修改就不执行那应该比较好,其实inotify就可以做到,只要你的服务器不是古董级别的,就支持inotify

Rsync+inotify实现文件实时同步

数据备份.文件备份是运维.DBA等岗位最熟悉不过的话题,这里不介绍数据库的备份,简单介绍一下文件同步工具,这样的工具有很多,Windows环境下有Goodsync.FreeFileSync等,Linux下rsync.unison等,常用的实时同步,是几种工具的组合,经过组合的工具达到文件实时同步的效果. 一.常用实时同步方案 1.NFS网络文件系统 该方案是分布式架构中,解决不同节点对同一资源访问的问题,搭建NFS服务器,将其挂载在不同的节点,每个节点将公用的数据存储在NFS服务器上,实现文件的