因工作需要及一些不好解释的原因,要把NSA上的一堆文件同步到Linux服务器上,大概40G左右,约310K个文件,文件每天都还在增加中,我首先想到的就是用lsyncd+rsync,结果网上找了半天也不知道怎么将lsyncd装到群晖上。最后想到用docker来做,容器里就可以安装lsyncd,相信还有其它好办法,只是没有时间给我去折腾了,还是就用docker了,下边记录一下笔记,万一那天又要用到好参考。
我是直接到镜像仓库,找出来第一个,最后更新两个月前,下载100K+,没多想直接选用
通过ssh连接上NSA,进入docker目录
切换到root用户并进入docker目录
新建配置文件目录
/volume1/docker/lsyncd/config
vi /volume1/docker/lsyncd/config/lsyncd.lua
settings {
logfile = "/tmp/lsyncd.log",
statusFile = "/tmp/lsyncd.status",
maxDelays = 100,
maxProcesses = 1,
statusInterval = 5
}
sync {
default.rsyncssh,
-- 源文件目录
source = "/wwwroot",
-- 目标服务器
host="120.xxx.xxx.xxx",
-- 目标服务同步文件目录
targetdir="/wwwroot",
-- 源机文件删除同步删除服务器文件
delete = true,
-- 排除目录
exclude = {
'.**',
'temp/**',
'cache/**',
'logs/**'
},
delay = 15,
rsync = {
archive = true,
compress = true,
verbose = false,
-- 不同步文件权限
perms = false,
owner = false,
group = false,
rsh = "/usr/bin/ssh -l root -p 22 -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no"
}
}
新建私钥文件目录/volume1/docker/lsyncd/config/.ssh
添加私钥文件/volume1/docker/lsyncd/config/.ssh/id_rsa
,直接从目标服务器复制过来。
修改私钥文件权限chmod 600 /volume1/docker/lsyncd/config/.ssh/id_rsa
修改操作系统的打开文件数量限制,默认8192,cat /proc/sys/fs/inotify/max_user_watches
echo 524288 >> /proc/sys/fs/inotify/max_user_watches
vi /etc/sysctl.conf
,添加fs.inotify.max_user_watches=524288
,系统重启后不会回到8192。
拉取镜像docker pull theorangeone/lsyncd
进入DSM,再进入Docker套件,选择theorangeone/lsyncd镜像启动创建容器
创建容器
添加配置文件目录
应用->下一步->完成
网友评论