如何防止Rsync阻塞传输的文件?


72

我在Linux服务器上使用远程文件系统进行sshfs连接设置。我正在从本地服务器到ftpfs文件系统进行Rsync。由于此设置的性质,我无法chown在sshfs文件系统上执行任何操作。

当我执行Rsync时,它会在传输完所有文件后尝试对它们进行处理。即使它可以很好地传输文件,也会导致chown错误。

使用Rsync,是否有一种方法可以告诉它不要尝试穿梭文件?如果我像1000个文件一样进行rsync,则最终会记录1000个chown: permission denied (error 13)错误。我知道得到这些错误不会有任何伤害,因为文件的所有权是由sshfs配置本身确定的。但是最好不要得到它们。

Answers:


107

您可能正在像这样运行rsync:

rsync -a dir/ remote:/dir/

根据文档,-a选项等效于:-rlptgoD

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

您可能要删除-o-g选项:

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

因此,您的rsync命令应如下所示:

rsync -rlptD dir/ remote:/dir/

@glglgl指出:

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

其余使用的选项是:

      -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
...或只是-a --no-o --no-g
glglgl 2012年

1
我只用了rsync -r --no-o --no-g /source/* /dest/,目的地的文件所有者和文件组仍然根据源进行了更改。有任何想法吗?
拉姆·帕特拉


5

不要使用该-a选项,因为它将包含-p保留权限的选项。对于这种情况,-r应该足够了。

有关更多信息,请参见man rsync


4
您确定-p是我要避免的吗?所有权不同于权限,对吗?
杰克·威尔逊

0

我遇到了类似的情况,rsync即没有保留所有者和从远程服务器同步的文件和目录组。要纠正,我复制过来的/etc/shadow/etc/group/etc/passwd文件。

当我在rsync下面运行命令时,它将保留权限,符号链接和所有权。

我已经设置了ssh密钥以使用无密码的ssh。

rsync -avpog user@10.1.x.x:/usr/local /usr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.