百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

IT之家:强大的网盘管理工具Rclone安装教程

nanshan 2024-11-05 10:43 53 浏览 0 评论

上期给大家介绍了Go语言BT下载利器CloudTorrent,那么这期给大家带来的依旧是一款基于Go语言的应用——Rclone。Rclone是一款非常强大的网盘工具,能够帮助用户在终端界面管理包括Dropbox、Box、Onedrive、Gdrive、Mega等在内的主流网盘中的各类资源,同时实用的挂载功能能够把网盘挂载到本地(OpenVZ架构的VPS不支持挂载)服务于Aria2、CloudTorrent等下载工具以及FileBrowser等私人网盘工具。

Rclone-GitHub首页:https://github.com/ncw/rclone

检查Rclone支持的网盘以及Rclone的官方安装脚本请前往GitHub,本文继续以Debian 9 VPS为例示范手动安装方法,Windows版本不另作示范。

介于上期内容许多家友觉得复杂,本期起取消所有的基础命令解释,想要学习手动配置但是基础薄弱的家友可以自己搜索相关命令的含义进行更改。

一、下载安装

复制以下命令到终端或者SSH工具中执行(整体复制,一个回车):

yum install unzip -y

apt-get install unzip -y

wget https://downloads.rclone.org/v1.44/rclone-v1.44-windows-amd64.zip

unzip rclone-v1.44-windows-amd64.zip

cd rclone-*/

mv rclone /usr/bin/

chmod 755 /usr/bin/rclone

mkdir -p /usr/local/share/man/man1

mv rclone.1 /usr/local/share/man/man1/

cd ..

rm -rf rclone-*

安装成功检查:

此时执行rclone命令出现相关指令的帮助证明安装成功。

注意:

权限不足手动sudo或者sudo su启动root账户,通常VPS默认帐户为root帐户。

为方便配置网盘的示例展示,这里选择rclone-1.44-linux-amd64版本的Rclone,如果需要不同版本请自行更换参数。

Rclone版本检查页面:https://downloads.rclone.org/

二、配置网盘

1.本地配置

这里我们以Onedrive for business为例,其余网盘根据应用提示进行操作。

执行rclone config命令进行配置

No remotes found - make a new one

n) New remote

s) Set configuration password

q) Quit config

无远端配置,请新建

n)新建

s)设置配置访问密码

q)退出配置

输入n新建

远端网盘命名(配置好后以此命名操作网盘)

输入one作为示范

Type of storage to configure.

Enter a string value. Press Enter for the default ("").

Choose a number from below, or type in your own value

Storage

选择配置的存储类型

输入配置值,回车表示默认

选择以下你需要的存储类型

输入18选择Onedrive作为示范

Microsoft App Client Id

Leave blank normally.

Enter a string value. Press Enter for the default ("").

微软App Client Id

通常留空

输入配置值,回车表示默认

输入回车留空

Microsoft App Client Secret

微软App Client Secret,同上

输入回车留空

Edit advanced config? (y/n)

y) Yes

n) No

是否进行高级配置

y)是

n)否

输入n否

Remote config

Use auto config?

* Say Y if not sure

* Say N if you are working on a remote or headless machine

远端配置

是否使用自动配置

是-通常情况

否-如果你使用远程访问或者无图形界面设备

输入y启动浏览器登陆Onedrive进行授权

输入n否,以无图形界面浏览器的VPS作为示范

2.远端授权

如果使用谷歌网盘等静态授权口令的网盘可以登陆网盘相关界面获取,微软Onedrive采用动态授权口令这里需要我们准备装有图形界面浏览器和Rclone的设备,Linux图形版本同下载安装步骤操作,Windows版本不另作示范。

装有图形界面浏览器和Rclone的设备在终端中执行:

rclone authorize "onedrive"

此时若终端不能调用浏览器,请手动用浏览器打开链接。

浏览器中授权成功后返回终端会生成自动授权码。

复制这两者间的所有内容

3.继续本地配置

For this to work, you will need rclone available on a machine that has a web browser available.

Execute the following on your machine:

rclone authorize "onedrive"

Then paste the result below:

这种工作模式你需要一台能装有Rclone和浏览器的设备

在该设备上执行rclone authorize "onedrive"获取授权码

把授权码粘贴在此

粘贴我们复制的授权码

Choose a number from below, or type in an existing value

Your choice

选择以下数值选择Onedive类型

1)OneDrive Personal or Business -Onedrive个人版或者企业版

2)Root Sharepoint site - Sharepoint站点

其余不常用

输入1,以Onedrive for business作为示范

Found 1 drives, please select the one you want to use:

0: OneDrive (business) id=Onedrive ID

Chose drive to use:

找到1个存储驱动器,请选择你需要的

输入0,某些Onedrive会有多个存储驱动器

Found drive 'root' of type 'business', URL:

Is that okay?

找到存储驱动器类型为企业版,访问链接为:这个链接就是Onedrive映射到Windows本地磁盘的地址

是否正确

输入y

y) Yes this is OK

e) Edit this remote

d) Delete this remote

y/e/d

这里Rclone会报一些网盘的配置参数

y)确定

e)编辑

d)删除

输入y,完成

三、使用命令

复制rclone copy source:sourcepath dest:destpath

移动rclone move source:sourcepath dest:destpath

删除文件rclone delete

删除空目录rclone rmdir

删除内容无视目录非空rclone purge remote:path

列表rclone ls remote:path

同步rclone sync source:path dest:path

示范中配置的Onedrive命名为one:

列出Onedrive的A0目录下的文件内容

rclone ls one:/A0

复制Onedrive的A0目录到本地的/home目录下

rclone copy one:/A0 /home

更多操作命令请访问Rclone官方网站或者GitHub。

四、挂载网盘

复制以下命令到终端或者SSH工具中执行:

yum install fuse -y

apt-get install fuse -y

mkdir /root/1drive

rclone mount one:/ /root/1drive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000

挂载成功检查:

挂载成功执行df -h会在分区中显示挂载的网盘信息。

注意:

这里使用的是示范中命名为one的Onedrive网盘以及挂载到本地的/root/1drive目录下,配置或者需求不同的家友可以手动修改。挂载完成后便可以放弃rclone的命令,进而像本地磁盘那样操作Onerdive中的内容了。

OpenVZ架构的VPS不支持挂载!

挂载命令开机自启动

复制以下命令到终端或者SSH工具中执行(整体复制,一个回车):

cat

[Unit]

Description=1drive

[Service]

User=root

ExecStart=/usr/bin/rclone mount one:/ /root/1drive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000

Restart=on-abort

[Install]

WantedBy=multi-user.target

eof

systemctl daemon-reload

systemctl start 1drive

systemctl enable 1drive

systemctl status 1drive

注意:

这里ExecStart=后面的参数根据自己的配置进行修改,这里仅以示范为例。

五、其他说明

如果我们把Rclone挂载的目录设为Aria2或者CloudTorrent的下载目录,可以看到显示的剩余空间确实是网盘空间(CloudTorrent按照1000进制计算的容量会偏大),但是这样直接把网盘挂载目录作为下载目录的操作会导致下载的缓存文件下载的瞬间就被上传,并不能生成一个完整的下载文件。

CloudTorrent由于应用本身的问题目前只能够手动上传,而Aria2可以利用其配置来设置上传脚本实现下载完成自动上传Onedrive的,就此实现Onedrive的离线下载功能。

Aira2自动上传脚本

#!/bin/bash

GID="$1";

FileNum="$2";

File="$3";

MinSize="5" #限制最低上传大小,默认5k

MaxSize="157286400" #限制最高文件大小(单位k),默认15G

RemoteDIR="/RATS/"; #rclone挂载的本地文件夹,最后面保留/

LocalDIR="/download/"; #Aria2下载目录,最后面保留/

if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi

if [[ "$FileNum" -le '0' ]]; then exit 0; fi

if [[ "$#" != '3' ]]; then exit 0; fi

function LoadFile{

IFS_BAK=$IFS

IFS=

\n'

if [[ ! -d "$LocalDIR" ]]; then return; fi

if [[ -e "$File" ]]; then

FileLoad="${File/#$LocalDIR}"

while true

do

if [[ "$FileLoad" == '/' ]]; then return; fi

echo "$FileLoad" |grep -q '/';

if [[ "$?" == "0" ]]; then

FileLoad=$(dirname "$FileLoad");

else

break;

fi;

done;

if [[ "$FileLoad" == "$LocalDIR" ]]; then return; fi

EXEC="$(command -v mv)"

if [[ -z "$EXEC" ]]; then return; fi

Option=" -f";

cd "$LocalDIR";

if [[ -e "$FileLoad" ]]; then

ItemSize=$(du -s "$FileLoad" |cut -f1 |grep -o '[0-9]*' |head -n1)

if [[ -z "$ItemSize" ]]; then return; fi

if [[ "$ItemSize" -le "$MinSize" ]]; then

echo -ne "\033[33m$FileLoad \033[0mtoo small to spik.\n";

return;

fi

if [[ "$ItemSize" -ge "$MaxSize" ]]; then

echo -ne "\033[33m$FileLoad \033[0mtoo large to spik.\n";

eval "${EXEC}${Option}" \'"${FileLoad}"\' "${RemoteDIR}";

if [[ $? == '0' ]]; then

rm -rf "$FileLoad";

IFS=$IFS_BAK

}

LoadFile;

使用:

/root目录新建名为rcloneupload.sh的脚本并编辑为以上内容,授权chmod +x rcloneupload.sh,然后再到Aria2配置文件中加上一行on-download-complete=/root/rcloneupload.sh即可,后面为脚本的路径。最后重启Aria2生效。

依照#后的描述自行根据实际配置进行更改。

MaxSize="157286400" #不要大于这个值,目前Onedrive最大只支持15GB的单文件

RemoteDIR="/RATS/"; #Rclone配置示范中的挂载地址是/root/1drive/

LocalDIR="/download/"; #检查自己Aria2的下载目录

说明:

此脚本并非本人所著且没有经过验证,使用相关的帮助以及原理可以访问脚本作者关于此脚本的说明页面:https://www.moerats.com/archives/482/

对原脚本作者和修改作者萌咖和萌鼠两位大佬表示感谢。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: