2014-10-03 16 views
6

Titel sagt alles wirklich.Können Sie während eines rsync-Aufrufs einen Befehl chown übergeben?

Ich sehe, dass Sie Besitzer: Gruppe beibehalten können, aber ist es möglich, den Besitzer zu ändern: Gruppe für alle Dateien auf der Fernbedienung, nachdem sie synchronisiert wurden?

Oder können Sie einen zusätzlichen Befehl irgendwie leiten?

rsync -vzrP --delete ~/Sites/website-name/ [email protected]:/home/website-name/public_html/ | chown website-name:websites-group *

Sorry, mein rsync/bash Wissen ist ziemlich begrenzt.

Antwort

5

Ja, rsync enthält die Optionen --usermap und --groupmap, mit denen Sie anpassen können, wie diese am Remote-Ende zugeordnet werden.

für Ihren speziellen Anwendungsfall, in den alle Dateien sind auf die gleiche Benutzer/Gruppe Combo abgebildet werden, können Sie die --chown Option verwenden, das eine Abkürzung für die oben ist.

+0

Vielen Dank für die Antwort, aber nach dem Suchen (und Lesen der man-Seiten) Ich kann nichts finden auf '' '' --usermap --groupmap --chown'''' (Ich fand '' '' - -chmod'''' nur) Entschuldigung. Kannst du mich in die richtige Richtung weisen oder mir ein Beispiel für die Syntax zeigen? Prost – CMSCSS

+0

Welche Version von rsync verwenden Sie? Diese Optionen wurden in rsync 3.1.0 hinzugefügt und auf der [man page] (http://rsync.samba.org/ftp/rsync/rsync.html) beschrieben. –

+0

Danke dafür, ich habe rsync auf meinem Mac aktualisiert, aber der Server sagt 3.0.9 ist das Neueste. Ich habe '' '' apt-get'''' verwendet - gibt es eine Möglichkeit, den Server zu zwingen, die neueren Versionen zu sehen? – CMSCSS

1

Zusätzlich zu Chris Antwort können Sie auch Ihre /etc/rsyncd.conf bearbeiten und die uid und gid, die Sie möchten, dass die Dateien in den entsprechenden Rsync-Ordner erhalten.

Beispiel:

[hadoop_out] 
     comment = hadoop_out 
     path = /mass1/mt_data/hadoop_out 
     read only = no 
     list = yes 
     uid = 26 
     gid = 26 
     auth users = postgres 
     secrets file = /etc/rsyncd.secrets 
     hosts allow = 10.11.20.61 

Auf diese Weise werden die Dateien sync'ed und postgres mit uid und gid26 des Benutzers gespeichert werden, damit Sie nicht diese Informationen zur Verfügung stellen müssen im Befehl Sie ausführen.