lsyncd|实时同步文件

default.rsync模式

目标主机

配置rsync

vim /etc/rsyncd.conf
log file = /var/log/rsyncd.log    
#日志文件位置,启动rsync后自动产生这个文件,无需提前创建
log format = %t %a %m %f %b
#格式化日志
pidfile = /var/run/rsyncd.pid     
#pid文件的存放位置
lock file = /var/run/rsyncd.lock   
#支持max connections参数的锁文件
secrets file = /etc/rsyncd.pass    
#用户认证配置文件

[test]     
#自定义同步模块名称
path = /tmp/dest          
#rsync目标服务器数据存放路径,源服务器的数据将同步至此目录
comment = test 
#模块描述
uid = wakamizu       
#设置rsync运行权限
gid = wakamizu
#设置rsync运行权限
port = 873        
#默认端口
ignore errors     
#忽略错误
use chroot = true 
#默认为true,在chroot环境中运行rsync守护进程。
read only = no    
#设置rsync源服务器为读写权限
list = yes    
#不显示rsync源服务器资源列表
max connections = 200     
#最大连接数
timeout = 600     
#设置超时时间
auth users = test        
#执行数据同步的用户名
hosts allow = 192.168.1.105   
#允许访问来源地址
hosts deny = 0.0.0.0/24      
#禁止访问来源地址
mkdir /tmp/dest/
setfactl -m u:wakamizu:rwx /tmp/dest
setfactl -d -m u:wakamizu:rwx /tmp/dest
setfactl -m g:wakamizu:rwx /tmp/dest
setfactl -d -m g:wakamizu:rwx /tmp/dest
echo "test:test">/etc/rsyncd.pass
chmod 600 /etc/rsyncd.pass
systemctl restart rsync

源主机

配置lsyncd

vim /etc/lsyncd/lsyncd.conf.lua
settings {
    logfile = "/var/log/lsyncd.log", -- 定义日志文件
    statusFile = "/var/log/lsyncd.status",  --定义状态文件
    pidfile = "/var/run/lsyncd.pid", -- 定义pid文件
    inotifyMode = "CloseWrite or Modify", -- 指定在 inotify 系统上监听哪些类型的更改,可以是Modify、CloseWrite、CloseWrite or Modify
    maxProcesses = 7, -- 同步进程数
    maxDelays = 5, -- 监控事件阈值,达到则激活同步进程,如果需要实时同步则设置为1
    insist = true -- 当错误产生时继续运行服务
}

sync {
    default.rsync, --有几个模式,分别是default.rsync、defalut.direct(本地同步)、default.rsyncssh(需要ssh认证)
    source = "/tmp/source", --配置源目录
    target = "test@192.168.1.106::test", --配置目标目录
    delete = true, -- true为同步删除差异文件,false为不同步删除差异文件,startup为启动时删除差异文件但是正常操作不删除,running为启动时不删除差异文件但是正常操作时会删除
    exclude = {'*.log','*.test'}, --不同步哪些文件
    -- excludeFrom = "/pathname/filename" -- 从文件中的每行规则加载正则排除同步文件
    delay = 15, --假如maxDelays定义了5次事件更改的阈值,那么在15秒内只有三次事件更改不会触发同步,需要等待到15秒之后
    rsync  = {
        archive = true, -- 递归方式传输并保持文件属性
        compress = true, -- 压缩传输
        verbose = true, -- 输出同步详情
        password_file = "/etc/rsyncd.pass"  --rsync认证文件
        --backup = "true" --开启备份
        --backup_dir = "/tmp/backup" --备份目录,文件被删除或者更改时原始文件会被复制到这个目录
    }
}
echo "test" > /etc/rsyncd.pass && chmod 600 /etc/rsyncd.pass
mkdir /tmp/source
systemctl restart lsyncd

default.rsyncssh模式

源主机

配置免密登录

ssh-keygen
ssh-copy-id wakamizu@192.168.1.106

配置lsyncd

vim /etc/lsyncd/lsyncd.conf.lua
settings {
    logfile = "/var/log//lsyncd.log", -- 定义日志文件
    statusFile = "/var/log/lsyncd.status",  --定义状态文件
    pidfile = "/var/run/lsyncd.pid", -- 定义pid文件
    inotifyMode = "CloseWrite or Modify", -- 指定在 inotify 系统上监听哪些类型的更改,可以是Modify、CloseWrite、CloseWrite or Modify
    maxProcesses = 1, -- 在rsyncdssh模式下,同步进程数必须设置为1
    maxDelays = 1 -- 监控事件阈值,达到则激活同步进程
}

sync {
    default.rsyncssh,
    source = "/tmp/source", --源文件夹
    host = "wakamizu@192.168.1.106", --ssh用户和主机
    targetdir="/tmp/dest",  --目标文件夹,注意和default.rsync的target有差异
    delete = true, -- true为同步删除差异文件,false为不同步删除差异文件,startup为启动时删除差异文件但是正常操作不删除,running为启动时不删除差异文件但是正常操作时会删除
    exclude = {'*.log','*.test'}, --不同步哪些文件
    -- excludeFrom = "/pathname/filename" -- 从文件中的每行规则加载正则排除同步文件
    rsync  = {
        archive = true, -- 递归方式传输并保持文件属性
        compress = true, -- 压缩传输
        verbose = true, -- 输出同步详情
    },
    ssh = {
      port =22,  --指定ssh端口
      identityFile="/root/.ssh/id_rsa"  --指定私钥文件
    }

}
systemctl restart lsyncd

注意:使用此模式目标文件夹ssh用户需要对其有足够的操作权限

default.direct模式

vim /etc/lsyncd/lsyncd.conf.lua
settings {
    logfile = "/var/log//lsyncd.log", -- 定义日志文件
    statusFile = "/var/log/lsyncd.status",  --定义状态文件
    pidfile = "/var/run/lsyncd.pid", -- 定义pid文件
    inotifyMode = "CloseWrite or Modify", -- 指定在 inotify 系统上监听哪些类型的更改,可以是Modify、CloseWrite、CloseWrite or Modify
    maxProcesses = 1, -- 同步进程数
    maxDelays = 1 -- 监控事件阈值,达到则激活同步进程
}

sync {
    default.direct,
    source = "/tmp/source", --配置源目录
    target = "/tmp/dest", --配置目标目录
    delete = true, -- true为同步删除差异文件,false为不同步删除差异文件,startup为启动时删除差异文件但是正常操作不删除,running为启动时不删除差异文件但是正常操作时会删除
}
systemctl restart lsyncd
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!