2011-11-28 12 views
12

Nie mogłem wymyślić, jak zsynchronizować pliki lokalne ze zdalnym hostem, pozostawiając uprawnienia do folderu zdalnego dla określonego folderu/var/www/site1/home/images w stanie nienaruszonym, czyli 750, podczas gdy uprawnienia do folderu źródłowego to 770 Potrzebuję tego folderu zapisywalnego lokalnie, , ale nie powinien być zapisywalny na serwerze produkcyjnym. I muszę zachować docelowe bramki tylko dla tego folderu, ponieważ wszystkie inne pliki i foldery muszą być zaktualizowane.rsync: jak zachować wybrane uprawnienia katalogu docelowego?

Do tej pory eksperymentowałem z --exclude, -filter, ale nie uzyskałem pożądanego efektu.

rsync -av --delete /var/www/site1/ [email protected]:/var/www/site1/ 

Odpowiedz

11

Ze strony podręcznika rsync: -a archive mode; same as -rlptgoD.

-p jest zachować uprawnienia, więc powinno to zrobić, co chcesz: -vrltgoD

+0

Dziękujemy! Nadal muszę aktualizować perms dla wszystkich innych plików i folderów. –

+1

Więc prawdopodobnie zrobiłbym to za pomocą dwóch poleceń, jednego dla głównego folderu za pomocą '-av' i wykluczając folder ze zdjęciami (' --exclude/home/images/'), a następnie dla folderu obrazów użyj' - vrltgoD'. Opcja '--dry-run' jest twoim przyjacielem, kiedy zastanawiasz się nad tymi kwestiami. – steveax

Powiązane problemy