实时同步lsyncd

1 lsyncd

1.1 lsyncd 简介

Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改。Lsyncd将这些事件整理几秒钟,然后生成一个或多个进程以将更改同步到远程文件系统。
默认同步方法是rsync Lsyncd是一种轻量级的实时镜像解决方案。Lsyncd相对容易安装,不需要新的文件系统或块设备。Lysncd不会妨碍本地文件系统性能,可以通过配置文件实现细粒度的自定义。自定义操作配置甚至可以从头开始编写,从shell脚本到用Lua语言编写的代码。

1.2 环境准备

rsync服务端:默认就有rsync无需安装
lsyncd客户端:安装lsyncd软件

在这里,备份服务器为服务端,存储服务器为客户端

[root@nfs ~]#yum install -y lsyncd

1.3 rsync配置文件

backup配置文件

[root@backup ~]#cat /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup

1.4 创建虚拟用户rsync

id rsync		#查看以下是否有rsync这个用户
useradd rsync -M -s /sbin/nologin #创建rsync虚拟用户

1.5 创建密码文件并修改访问权限为600

echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password #只能root用户才能查看密码

1.6 创建备份目录/修改目录属主和属组信息

mkdir /backup
chown rsync.rsync /backup

1.7 启动服务程序/重启服务程序

systemctl start rsyncd
systemctl restart rsyncd
systemctl enable rsyncd

1.8 lsyncd配置文件

lsyncd配置文件

root@nfs ~]#cat /etc/lsyncd.conf
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite",
maxProcesses = 8,
}
sync {
default.rsync,
source = "/data",
target = "rsync_backup@172.16.1.41::backup",
delete= true,
exclude = { ".*" },
delay = 1,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.password",
_extra = {"--bwlimit=200"}
}
}

1.9 存储服务器创建备份的目录

mkdir /data

1.10 创建密码文件,并修改权限

echo "123456" >/etc/rsync.password  #创建密码文件
chmod 600 /etc/rsync.password

1.11免交互式传输密码文件

rsync -avz /etc/passwd rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

执行上述命令出现下图,则证明部署服务成功

1.12 存储服务器进行测试

[root@nfs data]#touch test.txt
[root@nfs data]#ls
test.txt
++++++++++++++++++++++++++++++
[root@backup backup]#ls
test.txt

最新文章

  1. 在MacOS 10.12上安装Tomcat8.5
  2. Oracle 正则表达式函数-REGEXP_INSTR 使用例子
  3. ASP.NET Misconfiguration: Request Validation Disabled
  4. jquery判断起止时间大小和非空
  5. 尝鲜delphi开发android/ios_环境搭建
  6. Golang项目目录结构组织
  7. CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)
  8. js 终止页面加载
  9. DB2查询当前时间与指定时间的时间差(相隔的秒数)
  10. HTML禁止使用右键
  11. VB6基本数据库应用(五):数据的查找与筛选
  12. SQL四种语言
  13. java多线程基本概述(七)——join()方法
  14. Centos7下部署ceph 12.2.1 (luminous)集群及RBD使用
  15. Python 学习教程汇总
  16. css学习_css用户界面样式
  17. 第三章 C#程序结构(3.1 顺序与选择结构)
  18. arcgis10.3 python2.7 开发环境配置
  19. python 引用和对象理解(转)
  20. 0.1 Maven相关知识(项目开发基础)

热门文章

  1. 网络学习笔记(三):HTTP缓存
  2. VMware Tools安装,设置centos全屏、可拖入文件功能
  3. Python开发【第九篇】: 并发编程
  4. 《收获,不止SQL优化》读书笔记
  5. MySQL 全文索引实现简单版搜索引擎
  6. iOS 唤起APP之Universal Link(通用链接)
  7. os.path.join用法
  8. H5学习笔记-应用缓存,Web worker,服务器发送事件
  9. js random获取随机数,获取任意范围内随机整数
  10. mplayer+ffmpeg 组合截图