Come impedire a Rsync di trasferire file trasferiti?


72

Ho una configurazione di connessione sshfs con un filesystem remoto su un server Linux. Sto facendo un Rsync dal mio server locale al filesystem ftpfs. A causa della natura di questa configurazione, non riesco a trovare chownnulla sul filesystem sshfs.

Quando eseguo Rsync, prova a scaricare tutti i file dopo averli trasferiti. Ciò si traduce in errori di chown, anche se trasferisce i file bene.

Con Rsync, c'è un modo per dirlo di non provare a cercare i file? Se risincronizzo come 1000 file finisco con un registro di 1000 chown: permission denied (error 13)errori. So che non fa nulla per ottenere questi errori poiché la proprietà dei file è determinata dalla stessa configurazione di sshfs. Ma sarebbe bello non averli.

Risposte:


107

Probabilmente stai eseguendo rsync in questo modo:

rsync -a dir/ remote:/dir/

L' -aopzione secondo la documentazione è equivalente a:-rlptgoD

      -a, --archive    archive mode; equals -rlptgoD (no -H,-A,-X)

Probabilmente vuoi rimuovere le opzioni -oe -g:

      -o, --owner                 preserve owner (super-user only)
      -g, --group                 preserve group

Quindi invece il tuo comando rsync dovrebbe assomigliare a questo:

rsync -rlptD dir/ remote:/dir/

O come sottolinea @glglgl :

rsync -a --no-o --no-g dir/ remote:/dir/

Le restanti opzioni in uso sono:

      -r, --recursive             recurse into directories
      -l, --links                 copy symlinks as symlinks
      -p, --perms                 preserve permissions
      -t, --times                 preserve modification times
      -D                          same as --devices --specials
          --devices               preserve device files (super-user only)
          --specials              preserve special files

19
... o semplicemente-a --no-o --no-g
glglgl,

1
Ho usato solo rsync -r --no-o --no-g /source/* /dest/e il mio proprietario e il gruppo di file a destinazione erano ancora cambiati in base alla fonte. Qualche idea?
Ram Patra,


5

Non utilizzare l' -aopzione, poiché includerà l' -popzione che mantiene le autorizzazioni. Per questa situazione, -rdovrebbe essere sufficiente.

Per ulteriori informazioni, vedere man rsync.


4
Sei sicuro di -pcosa voglio evitare? La proprietà è diversa dalle autorizzazioni, giusto?
Jake Wilson,

0

Ho riscontrato qualcosa di simile per cui rsyncil proprietario e il gruppo di file e directory non sono stati sincronizzati da un server remoto. Per correggere, ho copiato nel corso degli /etc/shadow, /etc/groupe /etc/passwdfile.

Quando ho eseguito il rsynccomando sottostante, ha funzionato in quanto ha mantenuto autorizzazioni, collegamenti simbolici e proprietà.

Avevo impostato i tasti ssh per usare ssh senza password.

rsync -avpog user@10.1.x.x:/usr/local /usr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.