Jak uchronić Rsync przed przeglądaniem przesyłanych plików?

72

Mam konfigurację połączenia sshfs ze zdalnym systemem plików na serwerze Linux. Robię Rsync z mojego lokalnego serwera do systemu plików ftpfs. Ze względu na naturę tej konfiguracji nie mogę chownnic w systemie plików sshfs.

Kiedy wykonuję Rsync, próbuje przeskanować wszystkie pliki po ich przesłaniu. Powoduje to błędy chown, nawet jeśli pliki są przesyłane dobrze.

Czy w Rsync można powiedzieć, żeby nie próbował przeglądać plików? Jeśli synchronizuję tak jak 1000 plików, otrzymam dziennik 1000 chown: permission denied (error 13)błędów. Wiem, że uzyskanie tych błędów nie zaszkodzi, ponieważ własność plików zależy od samej konfiguracji sshfs. Ale byłoby miło ich nie dostać.

Jake Wilson
źródło

Odpowiedzi:

107

Prawdopodobnie używasz rsync w ten sposób:

rsync -a dir/ remote:/dir/

-aOpcja według dokumentacji jest równoznaczne z:-rlptgoD

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

Prawdopodobnie chcesz usunąć opcje -oi -g:

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

Zamiast tego polecenie rsync powinno wyglądać mniej więcej tak:

rsync -rlptD dir/ remote:/dir/

Lub, jak wskazuje @glglgl :

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

Pozostałe używane opcje to:

      -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
aculich
źródło
19
... lub po prostu-a --no-o --no-g
glglgl
1
Użyłem właśnie, rsync -r --no-o --no-g /source/* /dest/a mój właściciel i grupa plików w miejscu docelowym były nadal zmieniane zgodnie ze źródłem. Jakieś pomysły?
Ram Patra,
12

Nie należy przekazywać -oani żadnych innych opcji, które implikują.

Ignacio Vazquez-Abrams
źródło
5

Nie używaj tej -aopcji, ponieważ będzie ona zawierać -popcję zachowania uprawnień. W tej sytuacji -rpowinno wystarczyć.

Aby uzyskać więcej informacji, zobacz man rsync.

Sven
źródło
4
Jesteś pewien, że -ptego chcę uniknąć? Własność jest inna niż uprawnienia, prawda?
Jake Wilson
0

Napotkałem coś podobnego, przez co rsyncnie zachowałem właściciela, a grupa plików i katalogów została zsynchronizowana ze zdalnego serwera. Aby skorygować, skopiowałem ciągu /etc/shadow, /etc/groupi /etc/passwdplików.

Kiedy uruchomiłem rsyncponiższe polecenie, działało to tak, że zachowało uprawnienia, dowiązania symboliczne i własność.

Skonfigurowałem klucze ssh do korzystania z ssh bez hasła.

rsync -avpog [email protected]:/usr/local /usr
pbroderi31
źródło