Подскажите по rsync

Активист

Активист
Команда форума
Собственна ман что-то сложно дается

Нужно выполнить rsync over ssh, но при этом сменить владельца и установить права, на файлы 664, на папки 775, как?)

Cейчас делаю так на src
rsync -avz /var/www/sm.web.local/httpdocs/js/ [email protected]:~root/

А после на dst
/usr/bin/find . -type d | while read FILE; do chmod 775 "$FILE"; done
/usr/bin/find . -type f | while read FILE; do chmod 664 "$FILE"; done
chown -R timestream:timestream *
 

tz-lom

Продвинутый новичок
--owner --group , тогда будет владелец и группа на цели будет заменена на источник (конечно же требуются root права)
к сожалению менять на произвольных нельзя
с правами всё лучьше
--chmod=Dug=rwx,Do=rx,Fug=rw,Fo=rx
кстати вы уверены что other должен иметь право на исполнение в отличии от владельца/группы?
 

Активист

Активист
Команда форума
> --chmod=Dug=rwx,Do=rx,Fug=rw,Fo=rx
Чмод это хорошо)

> право на исполнение
/usr/bin/find . -type d | while read FILE; do chmod 775 "$FILE"; done
Это я меняю на директории, 775, exec тут же как directory list

А если у меня uid разные?)
 

tz-lom

Продвинутый новичок
ох,ёлки,там же 4 а не 5 , обратите внимание,я с дурости написал Fo=rx , Fo=r конечно же (ещё и удивился своей ошибке xD)
а вот если uid разные то опасайтесь --numeric-ids ,иначе действительно не будет преобразования к имени
так же может пригодиться --write-batch= - сгенерирует баш скрипт эквивалентный выполненной синхронизации,потом его можно слегка подправить и пользоваться,хотя конечно это менее удобно и со своими ограничениями
 
Сверху