rclone FAQ

2,097次阅读
没有评论

共计 4038 个字符,预计需要花费 11 分钟才能阅读完成。

常见问题

所有的云存储系统都支持所有的rclone命令吗?

是的,他们做了。 所有的rclone命令(例如sync', copy’, 等等)将在所有的远程存储系统上工作。.

我可以将配置从一台机器复制到另一台机器吗?

当然! Rclone将所有的配置存储在一个文件中。 如果你想找到这个文件,运行rclone config file,它会告诉你它在哪里。

更多信息见远程设置文档

我如何在一个没有浏览器的远程/无头盒子上配置rclone?

这一点现在已经被记录在自己的远程设置页面中了。.

rclone能否直接从硬盘同步到s3?

Rclone可以在两个远程云存储系统之间很好地进行同步。

请注意,它实际上是下载文件并再次上传,所以运行Rclone的节点需要有大量的带宽。

同步将是增量的(在一个文件的基础上)。

e.g.

rclone sync -i drive:Folder s3:bucket

同时从多个地点使用rclone

如果你为输出选择不同的子目录,你可以同时从多个地方使用rclone,比如说

Server A> rclone sync -i /tmp/whatever remote:ServerA
Server B> rclone sync -i /tmp/whatever remote:ServerB

如果你同步到同一个目录,那么你应该使用rclone拷贝,否则rclone的两个实例可能会互相删除对方的文件,例如

Server A> rclone copy /tmp/whatever remote:Backup
Server B> rclone copy /tmp/whatever remote:Backup

在这种情况下,你从服务器A和服务器B上传的文件名应该是不同的,否则一些文件系统(如Drive)可能会产生重复的文件。.

为什么rclone不像rsync那样支持部分传输/二进制差异?

Rclone将你传输的每个文件作为一个本地对象存储在远程云存储系统上。 这意味着你可以使用其他访问方法(如使用Google Drive网络界面)看到你上传的文件。 在你的硬盘上的文件和云存储系统中创建的对象之间有1:1的映射。

云存储系统(至少我还没有遇到过)不支持部分上传一个对象。你不能把一个现有的对象,在中间改变一些字节。

有可能建立一个同步系统,存储二进制差异,而不是像rclone那样存储整个对象,但这将打破你硬盘上的文件与远程云存储系统中的对象的1:1映射。

所有的云存储系统都支持内容的部分下载,因此有可能使部分下载发挥作用。 然而,为了使其有效地工作,这将需要存储大量的元数据,这打破了所需的文件与对象的1:1映射。.

rclone能做双向同步吗?

是的,从rclone v1.58.0开始,双向云同步是可用的。

我可以用HTTP代理使用rclone吗?

是的。rclone将遵循代理的标准环境变量,类似于cURL和其他程序。

一般来说,这些变量被称为http_proxy(用于通过http到达的服务)和https_proxy(用于通过https到达的服务)。 大多数公共服务将使用https,但你可能希望同时设置两个。

该变量的内容是protocol://server:port。 协议值是用来与代理服务器对话的,通常是httpsocks5

稍微令人讨厌的是,这个名称没有标准;一些应用程序可能使用http_proxy,而另一个则使用HTTP_PROXYrclone'使用的Go’库会尝试两种变化,但你可能希望设置所有的可能性。 因此,在Linux上,你可能会得到类似以下的代码

export http_proxy=http://proxyserver:12345
export https_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy

注意:如果代理服务器要求有用户名和密码,那么使用

export http_proxy=http://username:password@proxyserver:12345
export https_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy

NO_PROXY "允许你禁用特定主机的代理。主机必须是逗号分隔的,可以包含域或部分。例如 "foo.com "也可以匹配 "bar.foo.com"。

e.g.

export no_proxy=localhost,127.0.0.0/8,my.host.name
export NO_PROXY=$no_proxy

注意,FTP后端还不支持ftp_proxy

Rclone给出x509:加载系统根目录失败,没有提供根目录错误

这意味着rclone无法找到SSL根证书。 很可能你是在NAS上运行rclone,其操作系统是被削减的Linux,或者可能是在Solaris上。

Rclone(通过Go运行时)试图在Linux上从这些地方加载根证书。

"/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
"/etc/pki/tls/certs/ca-bundle.crt",   // Fedora/RHEL
"/etc/ssl/ca-bundle.pem",             // OpenSUSE
"/etc/pki/tls/cacert.pem",            // OpenELEC

因此,像这样做应该可以解决问题。 它还设置了时间,这对SSL的正常工作很重要。

mkdir -p /etc/ssl/certs/
curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
ntpclient -s -h pool.ntp.org

x509包中提到的两个环境变量SSL_CERT_FILESSL_CERT_DIR,提供了一个额外的方法来提供SSL根证书。

注意你可能需要在curl'命令行中添加–insecure’选项,如果没有这个选项就不能工作。

curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt

Rclone给出了加载配置文件失败:功能未实现的错误。

很可能这意味着你正在Linux上运行rclone,而go运行时不支持这个版本,即早于2.6.23版本。

请参阅go安装文档中的系统要求部分以了解全部细节。

我上传的所有docx/xlsx/pptx文件都以档案/zip形式出现

这是由于从没有安装微软办公套件的Windows电脑上传这些文件造成的。 最简单的解决方法是安装Word浏览器和Microsoft Office Compatibility Pack,用于Word、Excel和PowerPoint 2007及以后版本的文件格式。

tcp lookup some.domain.com 没有这样的主机

这发生在rclone不能解决一个域名的时候。请检查你的DNS设置是否正常,比如说

# both should print a long list of possible IP addresses
dig www.googleapis.com          # resolve using your default DNS
dig www.googleapis.com @8.8.8.8 # resolve with Google's DNS server

如果你使用的是 systemd-resolved(Arch Linux的默认版本),请确保它是233或更高版本。以前的版本包含一个错误,导致不是所有的域名都能被正确解析。

此外,通过GODEBUG=netdns=环境变量,可以影响Go解析器的决定。这也允许解决DNS解析的某些问题。请参阅go docs中的名称解析部分

同步统计中报告的总大小是错误的,而且一直在变化。

你很可能有超过10000个文件需要同步。默认情况下,rclone在一次同步中只获取1万个文件,以免占用过多的内存。你可以用–max-backlog标志改变这个默认值。

Rclone使用了太多的内存或似乎有内存泄漏

Rclone是用Go写的,它使用了一个垃圾收集器。 垃圾收集器的默认设置意味着它在堆的大小翻倍时运行。

但是可以通过设置GOGC来调整垃圾收集器,使其使用更少的内存,例如export GOGC=20。 这将使垃圾收集器更努力地工作,在牺牲CPU使用率的情况下减少内存大小。

导致rclone使用大量内存的最常见原因是一个有数千或数百万文件的目录。 Rclone必须将其作为rclone对象完全加载到内存中。 每个rclone对象需要0.5k-1k的内存。

Rclone改变文件名中的全宽Unicode标点符号

比如说。在Windows系统中,你有一个名字为Test:1.jpg的文件,其中是Unicode全角冒号符号。当使用rclone将其复制到Google Drive时,你会注意到该文件被重命名为Test:1.jpg,其中是普通的(半宽)冒号。

这种重命名的原因是rclone处理不同云存储系统上不同限制性文件名的方式。它试图尽量避免模糊的文件名,并允许在许多云存储系统之间透明地移动文件,当转移到一个存储系统时,用看起来相似的Unicode字符替换无效的字符,当转移到一个支持原始字符的不同存储系统时,再替换回来。当文件名中故意使用相同的Unicode字符时,这种替换策略会导致不必要的重命名。阅读更多[这里](/overview.html#restricted-filenames-caveats)。

正文完
 0
rclone中文站
版权声明:本站原创文章,由 rclone中文站 于2023-01-20发表,共计4038字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)