Ubuntu18.04【Lsyncd】文件实时同步
描述
Lsyncd是Rsync + ssh是一种高级操作配置,它使用SSH来操作文件和目录,直接在目标上移动,而不是通过线路重新传输移动目.可以最快的速度去让目标主机做到同步功能
环境
nginx1: 10.0.0.87
nginx2: 10.0.0.88
安装使用aliyun的源即可apt安装
apt-get install lsyncd
apt install rsync
查看安装的版本
root@k8s-etcd1:/etc/nginx# lsyncd --version
Version: 2.1.6
创建必要文件夹
mkdir /etc/lsyncd #ubuntu需要手动创建配置文件定义
mkdir /var/log/lsyncd
touch /var/log/lsyncd/lsyncd.{log,status}
配置免密登陆
ssh-keygen -t rsa
ssh-copy-id root@10.0.0.88
ssh root@10.0.0.88 (无需密码即可登陆)
编辑配置文件
cd /etc/lsyncd/
vim lsyncd_nginx.lua
settings {
logfile = "/var/log/lsyncd/lsyncd-nginx.log", --定义日志文件
statusFile = "/var/log/lsyncd/lsyncd-nginx.status" --定义状态文件
}
sync {
default.rsyncssh,
source = "/etc/nginx", --源目录
host = "10.0.0.88", --目的主机
targetdir = "/etc/nginx", --远程目录
delete = true,
delay = 0, --延迟
-- exclude={
-- ".txt" --排除
-- },
rsync = {
binary = "/usr/bin/rsync",
archive = true, --归档
compress = true, --压缩
verbose = true,
owner = true, --属主
perms = true, --权限
_extra = {"--bwlimit=2000"},
},
ssh = {
port = 22
}
}
运行
root@k8s-etcd1:/etc/nginx#lsyncd lsyncd_nginx.lua #指定配置文件运行
root@k8s-etcd1:/etc/nginx# ps -ef'grep lsyncd'grep -v grep
root 16693 1 0 17:35 ? 00:00:00 lsyncd /etc/lsyncd/lsyncd_nginx.lua
测试实时同步时间
这个11G的文件目标数据同步过来之后大概是5分钟左右,具体需要根据服务器配置等优化
root@k8s-etcd1:/etc/nginx# dd if=/dev/zero of=test bs=1M count=10240
10240+0 records in
目标主机查看是否数据一致
root@k8s-etcd2:/etc/nginx# cd /etc/nginx/
root@k8s-etcd2:/etc/nginx# du -sh test
11G test
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mr.yang 个人博客!
评论