最近微盟的事情,作为一个小运维来说真是感概万分啊,再一次重申了备份和分权的重要性,不要把鸡蛋放在一个框子里。
今天来讲lsyncd配置的第二部分也是核心部分 sync 配置。
sync是lsyncd执行具体的同步配置,每个sync配置都是独立的,可以同时执行多个sync配置。
官方文档写的不怎么全,果然程序员都不喜欢写稳定啊,大神也不例外!扒了扒源码,sync和settings一样都是一个lua函数。
image.png
里面是定义同步参数,可以继续使用maxDelays来重写settings的全局变量。第一个参数指定lsyncd以什么模式运行:内置了rsync、rsyncssh、direct三种模式,也可以自定义:
default.rsync :
使用rsync进行本地目录间同步,或使用rsync的ssh形式进行远程同步,
或使用rsync的daemon方式进行远程同步(需要目标主机也安装rsync)
default.direct :
本地目录间同步,使用cp、rm等命令完成差异文件备份
default.rsyncssh :
同步到远程主机目录,使用rsync的ssh模式,需要先配置ssh免密登录(密钥登录)
source:
同步的源目录,使用绝对路径。
target:
目标地址,仅用于direct, rsync模式, 对应不同的模式有几种写法例如
1. /tmp/dest
本地目录同步 root@172.16.1.31:/opt/
使用远程shell(如rsh、ssh) 同步到远程服务器目录,
root@可以省略,默认是root用户 。用于rsync模式。
2. root@172.29.88.223::var/back
使用rsync的daemon模式同步到远程服务器目录,目标主机也需要安装rsync。
var/back等于/var/back,root@可以省略,默认是root用户。
用于rsync模式。
targetdir
目标地址,仅用于rsyncssh模式,例如:/tmp/dest
init
当init = false,只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步。
默认是true
delay
等待rsync同步延时时间,默认15秒(最大累计到1000个不可合并的事件
(settings中的maxDelays,默认1000)。也就是15s内监控目录下发生的改动,
会累积到一次rsync同步,避免过于频繁的同步。
(可合并的意思是,15s内两次修改了同一文件,最后只同步最新的文件)
excludeFrom
从文件加载排除规则,如excludeFrom = "/etc/lsyncd.exclude"
exclude
从字符串加载排除规则,如exclude = { '*.bak' , '*.tmp' }
这里的规则写法与原生rsync有点不同,更为简单:
如果规则以斜线/开头,则从头开始要匹配全部
如果规则以/结尾,则要匹配监控路径的末尾
?匹配任何字符,但不包括/
*匹配0或多个字符,但不包括/
**匹配0或多个字符,可以是/
delete
为了保持target与souce完全同步,Lsyncd默认会delete = true来允许同步删除。
它除了false,还有startup、running值。
false
Lsyncd不会删除目标上的任何文件。既不在启动时也不在正常运行时。(但是可能会覆盖)
'startup'
Lsyncd在启动时会删除目标上的文件,但在正常运行时不会删除。
'running'
Lsyncd在启动时不会删除目标上的文件,但会删除在正常操作过程中删除的文件。
rsync
配置rsync的命令行参数。 rsync参数太多了,大家看下官方文档把。
仅适用于,default.rsyncssh和default.rsync模式
host
远程主机地址,例如: 192.168.1.1 或者 zhai@192.168.8.1.1
ssh
配置ssh参数,例如端口:port=1234
image.png
下面写几个简单的例子:
image.png
image.png
ssh传输方式必须配置免密登录
-
登录源主机生成私钥,一路回车确认。
image.png
-
将公钥发送给目标主机
输入yes,回车,然后输入目标主机ssh密码,回车确认
image.png
-
验证是否成功
image.png
免密登录成功
lsyncd默认提供了三种配置模式:rsync、rsyncssh、direct,我们也可以自定义自己的配置
下期讲解,怎么自定义自己的模式
个人用户或小企业用户,建站后没有运维怎么办?
旗鱼云梯, 专业的SAAS化服务器集群管理云平台, 免费的运维服务专业的技术, 您值得的拥有.
by 旗鱼云梯











网友评论