到权限被拒绝的 Rsync 文件

到权限被拒绝的 Rsync 文件

我想找到那些我无法复制到另一个位置的文件,以便我可以进行 Rsync。我有一个外部硬盘驱动器和我的系统的硬盘驱动器。外部硬盘上有我的系统丢失的文件。我正在想如何做到这一点。

我可以找到那些权限被拒绝的文件/目录 - 消息

find / ! -perm /u+r

一些权限在哪里

drwx------ 1  501 root       6 Oct 22  2014 PortableCV_WebCruiter_20141022

以下命令可能适用于命令行fu.com,因为远程数据在这里可以被视为外部硬盘

rsync --rsync-path 'sudo rsync' username@source:/folder/ /local/

哪个

使用 sudo 以 root 身份 rsync 远程数据 如果您的用户在远程机器上有 sudo,则您可以以 root 身份 rsync 数据,而无需以 root 身份登录。如果远程机器不允许 root 通过 SSH 登录(这是常见的安全限制),这将非常有用。

如何在外部硬盘和系统硬盘之间同步存在权限被拒绝问题的文件?

答案1

如果你想跳过不可读的文件:

find /external/hd/folder ! -readable -print >unreadable_files
rsync -a --exclude-from=unreadable_files /external/hd/folder/ /local/folder

这假设您使用的是 GNU find,并且您的文件名没有嵌入换行符。

如果要复制所有文件,无论它们在外部磁盘上是否可读:

sudo rsync -a /external/hd/folder/ /local/folder
sudo chown -R masi:masi /local/folder

这假设您有足够的权限来运行sudo rsyncsudo chown

答案2

如果您将外部硬盘安装到本地系统,那么它就不是远程的。除非我误解了,您的 HDD 正在运行 rsync 守护进程并通过网络连接?但请忘记这一点,您可以在本地安装驱动器吗?正如 @mjturner 所说,您所需要做的就是确保rsync以 root 身份运行并且它是直接副本sudo rsync -a /mount/for/hdd/folder/ /local/

答案3

为什么不直接将rsync外部硬盘上的所有文件复制到系统硬盘上呢?它不会重新复制已经存在的文件。

当然,请务必以 root 身份进行复制,以确保复制所有文件并保留权限。

相关内容