У меня небольшая проблема. Я использую rsync (Cygwin) в Window, и файлы, которые синхронизируются в моей удаленной папке, неверны.
rsync -r /cygdrive/c/xampp/htdocs/mysite/* me@mysite.com:/home/mysite/public_html/
Прямо сейчас я использую rsync для загрузки файлов, НО затем я должен зайти в свой удаленный каталог и вручную изменить права доступа к файлам / папкам.
Есть ли у rsync возможность использовать CHMOD и т. Д.?
Спасибо, Венберт
РЕДАКТИРОВАТЬ: я бы хотел, чтобы файлы были 644 и т. Д.
Cygwin не понимает списки ACL NTFS и не может их реплицировать. Вы всегда будете получать глупые разрешения на удаленной стороне с помощью rsync.
Два метода, которые я использовал или слышал, рекомендуют решить эту проблему:
Если вы хотите принудительно установить разрешения в месте назначения, вам нужно будет использовать --chmod
вариант и / или --perms
вариант.
--chmod
переопределяет разрешения источника (т.е. rsync делает вид, что разрешения источника - это то, что вы указали, а не то, что они есть на самом деле)--perms
(или -p
) принудительно устанавливает разрешения источника на целевой серверНапример:
rsync --chmod=a=r,u+w,D+x -p -r /cygdrive/c/xampp/htdocs/mysite/* \
me@mysite.com:/home/mysite/public_html/
Вы не упомянули, что cygwin считает исходными разрешениями (т.е. ls -l /cygdrive/c/xampp/htdocs/mysite/*
в cygwin) или какие фактические разрешения оказываются на стороне назначения. Если бы мы знали это, можно было бы построить что-нибудь попроще.
Для тщательного освещения различных опций обратитесь к очень подробному справочная страница rsync.
Обратите внимание, что rsync еще не поддерживает восьмеричные разрешения (например, --chmod=644
). Согласно этому сообщению, поддержка этого будет доступна в rsync 3.1.0.