
У меня проблема, когда файлы копируются на удаленный сервер, но владелец/группа реплицированных файлов на целевом сервере всегда '1002'. Разрешения источника соблюдаются и корректно реплицируются на целевом сервере. Я просто не могу придумать, как сохранить владельца (и группу) реплицированных файлов.
Версия Lsyncd: 2.2.2
мои настройки ниже:
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status"
}
sync {
default.rsyncssh,
source="/home",
host="1*52.*.15",
targetdir="/home/",
delete = "running", -- prevents deletion of files on startup (ie when a server comes back online, don't delete files that are new on the backup)
delay = 5, -- run every 5 seconds instead of default 20
exclude = {
"/home/backup",
},
rsync = {
archive = true, -- use the archive flag in rsync
perms = true, -- Keep the permissions
owner = true, -- Keep the owner
compress = true,
acls = true,
xattrs = true,
_extra = {"-a"}, -- Sometimes permissions and owners isn't copied correctly so the _extra can be used for any flag in rsync
}
}
Ошибка журнала lsyncd:
Dec 15 21:42:47 server1.*.group lsyncd[21033]: sending incremental file list
Dec 15 21:42:47 server1.*.group lsyncd[21033]: rsync: failed to set times on "/home/admin/conf": Operation not permitted (1)
Dec 15 21:42:47 server1.*.group lsyncd[21033]: admin/conf/
Dec 15 21:42:47 server1.*.group lsyncd[21033]: sent 5,387 bytes received 160 bytes 3,698.00 bytes/sec
Dec 15 21:42:47 server1.*.group lsyncd[21033]: total size is 2,849,404,839 speedup is 513,683.94
Dec 15 21:42:47 server1.*.group lsyncd[21033]: rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
решение1
Я полагаю, что проблема в том, что uid/gid файлов в локальной системе не соответствуют uid/gid в целевой системе.
Проверьте идентификаторы пользователя/группы в локальной системе и создайте такого же пользователя/группу в целевой системе.
# On source system
$ ls -l /home/admin/conf
-rw-r--r--. 1 user1 user1 1.0K Jul 13 2018 /home/admin/conf
$ id user1
uid=1002(user1) gid=1002(user1) groups=1002(user1)
# On target system
$ useradd -u 1002 -g 1002 user1
решение2
Когда RSYNC передает файл с сохранением права собственности, он передает не имя пользователя/имя группы, а UID и GID владельца.
Таким образом, ваш опыт с 1002 означает, что этот UID не используется в целевой системе.
Эту проблему можно решить двумя способами:
- Удалите старого пользователя и создайте его заново, используя настройку UID в useradd. -- Это, вероятно, самый простой способ сделать это, поскольку вам не придется ничего изменять или изменять права доступа.
- Обновите UID и GID с помощью usermod. -- Если вы это сделаете, вам придется сделать chown-файлы в вашем домашнем каталоге, и могут возникнуть другие неожиданные побочные эффекты для других файлов, принадлежащих этому пользователю.
Пункт списка