Я использую lsyncd для синхронизации в реальном времени между главным и подчиненным сервером, и я хочу исключить файлы, такие как .htaccess и git, на подчиненный сервер. Я настроил так:
sync {
default.rsync,
source = "/ home / test /",
target = "202.63.240.146:/home/test",
excludeFrom = "/ home / test / public_html / .htaccess",
rsync = {archive = true, perms = true, owner = true, _extra = {"-a"}, rsh = "/ usr / bin / ssh -l root -i /root/.ssh/id_rsa",}
}
Но вроде не работает. Кто-нибудь может исправить мою конфигурацию. Моя версия lsyncd - 2.2.
Ваш excludeFrom=
должен быть файлом, содержащим простой список файлов / каталогов, которые нужно исключить. Похоже, вы хотите исключить файл (ы) .htaccess, и в этом случае вам нужно exclude = { '.htaccess' }
. См. Раздел «Исключения» в lsyncd руководство.
Кстати, ваш _extra={'-a'}
может быть не хочешь, хочешь. -a
эквивалентно -rlptgoD
(см. справочную страницу rsync). По умолчанию lsyncd для этих параметров:
recurse = true
links = true
times = true
perms = false
group = false
owner = false
-D
/--devices
] <= не поддерживается lsyncdПоскольку вы уже переопределили perms
/group
/owner
, ваш -a
эффективно эквивалентно --device
. [= воссоздать персонажа и заблокировать устройства в месте назначения]