gpt4 book ai didi

linux - 使用 Lsyncd 保留文件的所有权

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:02 32 4
gpt4 key购买 nike

我有两台服务器:源服务器和目标服务器。我想使用 lsyncd 将源服务器上目录中的文件同步到目标服务器上的另一个目录。

在我的 ssh 守护程序中,在两台服务器上,我都禁用了 root 登录(PermitRootLogin no),所以我不能使用 root 用户通过 ssh 运行 lsyncd。

我在两台服务器上创建了一个用户“syncer”,它有一个 key 对,允许从源服务器到目标服务器的无密码 ssh 登录。所以这有效:

[syncer@source-server]$ ssh syncer@target-server

我的 lsyncd.conf 看起来像这样:

settings = {
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.stat",
statusInterval = 2
}


sync {
default.rsync,
source="/var/www/html/",
target="target.server.ip:/backup/",
rsync = {
rsh ="/usr/bin/ssh -l syncer -i /home/syncer/.ssh/id_rsa",
compress = true,
acls = true,
xattrs = true,
archive = true
}
}

它有效除了目标服务器上复制文件的所有者始终是“syncer”。源的权限在目标上得到尊重和正确复制。我只是想不出一种方法来保留复制文件的所有者(和组)。 (即,如果源上的文件归“deknuth”所有,我希望目标上的同步文件也归“deknuth”所有,而不是“syncer”)。

TIA

最佳答案

为了解决这个问题,使用非 root 用户将始终移动一个文件,该非 root 用户是目标上的所有者——无论谁在源上拥有它。这可能是可以接受的。如果没有,以 root 身份运行 lsyncd 并允许 root 使用 key 对登录。

关于linux - 使用 Lsyncd 保留文件的所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40109564/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com