zachowaj pozwolenie z scp

25

SCP nie zachowuje znaczków własności, nawet jeśli jest używany z opcją -p.

scp -p /mysql/serv/data_summary.* some_server:/mysql/test/

Pliki są własnością mysql i chcę, aby ta sama własność została przypisana na serwerze docelowym. Muszę skopiować pliki jako root na obu serwerach z powodu niektórych problemów administracyjnych. Nie mogę zmienić na mysql @

shantanuo
źródło

Odpowiedzi:

37

Spróbuj użyć rsync, ma on o wiele więcej zalet niż utrzymanie własności, uprawnień i przyrostowych kopii:

rsync -av source 192.0.2.1:/dest/ination

Poza tym, ponieważ rsync używa ssh, powinien działać tam, gdzie działa scp.

aseq
źródło
ssh obsługuje -i myfile.pem, a rsync nie wydaje się mieć opcji -i
shantanuo
5
@shantanuo: Użyjrsync -e 'ssh -i myfile.pem' -insert_other_rsync_options_here
Janne Pikkarainen
14

To jest poprawne. „-p” tego nie robi. Zobacz stronę manuala:

     -p Zachowuje czasy modyfikacji, czasy dostępu i tryby z
             oryginalny plik.

Zauważ, że podaje czasy i tryby, a NIE własność użytkownika / grupy. Będziesz mieć więcej szczęścia z „rsync”, ponieważ ma różne możliwości zachowania uprawnień podczas kopiowania między różnymi systemami. Na przykład „-p” w rsync.

Nex7
źródło