rsync 作为 root - 它会改变同步文件的所有权吗?

rsync 作为 root - 它会改变同步文件的所有权吗?

我将使用 rsync 将旧主文件夹同步到备份驱动器上。我正在考虑使用 rsync 作为 root。有没有办法避免更改我复制的文件等的所有权?

答案1

您可以使用-o-g选项。从说明书rsync( man rsync):

-o,--owner 保留所有者(仅限超级用户)

-g,--group 保留组

更进一步,常用的选项rsync-a/--archive选项。该选项意味着-rlptgoD,即以下选项:

-r,--recursive 递归到目录

-l,--links 将符号链接复制为符号链接

-p,--perms 保留权限

-t--times 保留修改时间

-D--devices --specials与(保留设备文件、保留特殊文件) 相同

答案2

我使用以下命令行来保留“所有内容”、文件内容、文件的所有权和权限、目录、符号链接等。这样我就能够将系统复制到新驱动器并使其在另一台计算机上运行。好吧,我也必须修复引导加载程序,但它可以很好地复制文件内容、所有权和权限。

  • 请注意源目录中的尾部斜杠,并在 中阅读相关内容man rsync
          rsync -avz foo:src/bar/ /data/tmp

   A  trailing slash on the source changes this behavior to avoid creating
   an additional directory level at the destination.  You can think  of  a
   trailing / on a source as meaning "copy the contents of this directory"
   as opposed to "copy the directory by  name",  but  in  both  cases  the
   attributes  of the containing directory are transferred to the contain‐
   ing directory on the destination.  In other words, each of the  follow‐
   ing  commands copies the files in the same way, including their setting
   of the attributes of /dest/foo:

          rsync -av /src/foo /dest
          rsync -av /src/foo/ /dest/foo

   Note also that host and module  references  don’t  require  a  trailing
   slash to copy the contents of the default directory.  For example, both
   of these copy the remote directory’s contents into "/dest":

          rsync -av host: /dest
          rsync -av host::module /dest

   You can also use rsync in local-only mode, where both  the  source  and
   destination  don’t have a ’:’ in the name. In this case it behaves like
   an improved copy command.
  • -n,从“试运行”开始,检查一切看起来是否正确。

    sudo rsync -Havn source/ target
    
  • 删除选项 ( -n) 并让它rsync完成它的工作。

    sudo rsync -Hav source/ target
    

它将检查目标中的每个目录/文件是否存在并且是最新的,并且仅复制需要更新的内容(在备份场景中)。


  • -H跟踪硬链接(这节省了驱动器空间),但使复制过程变慢(它不包含在其中的原因-a
  • -a是用于备份目的的标准归档选项,它保留文件系统中文件的“所有内容”(硬链接除外)。
  • -v是经典的详细选项,它打印要复制的所有文件。还有其他您可能更喜欢的选项来监控进度。您可能更喜欢关闭冗长的内容,但在早期阶段检查事情是否按预期进行是有好处的。

答案3

我用

sudo rsync -HavE /SOURCE /DEST

因为我的备份中有可执行的 bash .sh 脚本。

首字母缩略词 `-HavE 有助于记住“HavEverything”

该缩写词-HavEn有助于安全地记住“HavEverything”

-E, --executability 保留可执行性

感谢您的回答@sudodus

凯文

相关内容