rsync chmod

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
gabell
рядовой
Сообщения: 25
Зарегистрирован: 2010-04-30 10:51:00
Откуда: Питер

rsync chmod

Непрочитанное сообщение gabell » 2010-07-05 12:44:49

Добрый день!
Есть проблемка с назначением прав на каталоги и файлы на удаленной машине при синхронизации с помощью rsync.
Сейчас запускаю так:

Код: Выделить всё

/usr/local/bin/rsync -avz --delete-after --chmod=o=rx /dir1 remote.example.com:/data/dir2
И получаю o+rx и для каталогов, и для файлов, что не есть хорошо. Может кто-нибудь пролить свет на использование этой опции у rsync.
Пробовал также:

Код: Выделить всё

/usr/local/bin/rsync -avz --delete-after --no-p /dir1 remote.example.com:/data/dir2
Но тогда на удаленные каталоги назначаются права 750, хотя локально 770. Видимо параметры umask не влияют на то, с какими правами создаются каталоги.

Код: Выделить всё

sudo -u rsync_user mkdir dir
на удаленной машине дает то, что нужно: 755.

Конечно можно написать скрипт в три строчки, где с помощью find и chmod делать, то, что мне нужно . Но, во-первых, в этих каталогах очень много маленьких файлов, во-вторых не люблю использовать скрипты, там где их можно заменить одной программой, а в-третьих, просто любопытство разбирает.

ЗЫ. Пока писал это сообщение, понял, что пока не знаю, как запускать chmod на удаленной машине, после того, как отработает rsync на локальной. Это если все-таки придется использовать скрипт.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
gabell
рядовой
Сообщения: 25
Зарегистрирован: 2010-04-30 10:51:00
Откуда: Питер

Re: rsync chmod

Непрочитанное сообщение gabell » 2010-07-05 18:56:56

Любопытство было настолько сильным, что я полез в исходники :smile:

Код: Выделить всё

if (state != STATE_2ND_HALF) {
             switch (*modestr) {
             case 'D':
                 if (flags & FLAG_FILES_ONLY)
                     state = STATE_ERROR;
                 flags |= FLAG_DIRS_ONLY;
                 break;
             case 'F':
                 if (flags & FLAG_DIRS_ONLY)
                     state = STATE_ERROR;
                 flags |= FLAG_FILES_ONLY;
                 break;
Таким образом, чтобы получить, то, что мне нужно:

Код: Выделить всё

/usr/local/bin/rsync -avz --delete-after --chmod=Do=rx,Fo=r /dir1 remote.example.com:/data/dir2

ViktorichZ
сержант
Сообщения: 152
Зарегистрирован: 2008-10-30 12:15:26

Re: rsync chmod

Непрочитанное сообщение ViktorichZ » 2010-07-05 21:42:19

-a --super --delete --backup
даже UID поставит