需求:Linux服务器上下载了好多资源。但是Linux没有onedrive和google drive的客户端。

那么如何把vps上的文件传到onedrive呢。

这里我们可以用rclone这个工具。

先安装rclone
第一步:我们先在windows上配置一下
下载windows对应位数的压缩包,网址:https://rclone.org/downloads/

先解压到D:\rclone

管理员命令提示符(cmd)输入下面的命令,回车

cd /d d:\rclone
rclone authorize "onedrive"

会自动打开浏览器让你登录你的onedrive账户

点击授权后浏览器显示如图

回到cmd,发现多了一大串字符。复制花括号里的所有字符,新建一个文档保存,一会要用。

 

rclone_3

第二步:开始配置Linux端

打开你的SHH工具连接vps,我的是ubuntu系统,输入:

apt-get update
apt-get install -y unzip fuse

然后输入:

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
chmod 0777 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*

然后输入:

rclone config

即可调出配置信息

第三步:新建

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> 

输入n
显示如下
name>
这里我们起个名字

第四步:出现一堆网盘序号

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
 1 / 1Fichier
   \ "fichier"
 2 / Alias for an existing remote
   \ "alias"
 3 / Amazon Drive
   \ "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
   \ "s3"
 5 / Backblaze B2
   \ "b2"
 6 / Box
   \ "box"
 7 / Cache a remote
   \ "cache"
 8 / Citrix Sharefile
   \ "sharefile"
 9 / Dropbox
   \ "dropbox"
10 / Encrypt/Decrypt a remote
   \ "crypt"
11 / FTP Connection
   \ "ftp"
12 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
13 / Google Drive
   \ "drive"
14 / Google Photos
   \ "google photos"
15 / Hubic
   \ "hubic"
16 / In memory object storage system.
   \ "memory"
17 / JottaCloud
   \ "jottacloud"
18 / Koofr
   \ "koofr"
19 / Local Disk
   \ "local"
20 / Mail.ru Cloud
   \ "mailru"
21 / Mega
   \ "mega"
22 / Microsoft Azure Blob Storage
   \ "azureblob"
23 / Microsoft OneDrive
   \ "onedrive"
24 / OpenDrive
   \ "opendrive"
25 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
26 / Pcloud
   \ "pcloud"
27 / Put.io
   \ "putio"
28 / QingCloud Object Storage
   \ "qingstor"
29 / SSH/SFTP Connection
   \ "sftp"
30 / Sugarsync
   \ "sugarsync"
31 / Transparently chunk/split large files
   \ "chunker"
32 / Union merges the contents of several remotes
   \ "union"
33 / Webdav
   \ "webdav"
34 / Yandex Disk
   \ "yandex"
35 / http Connection
   \ "http"
36 / premiumize.me
   \ "premiumizeme"
Storage>

找到对应的序号,我这里onedrive是23号。
输入23回车

第五步:接下来

** See help for onedrive backend at: https://rclone.org/onedrive/ **

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> 

默认空着,直接回车

Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> 

默认空着,直接回车
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> 
Edit advanced config? (y/n)
y) Yes
n) No (default)
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) Yes (default)
n) No
y/n>

选择n
For this to work, you will need rclone available on a machine that has a web browser available.
Execute the following on your machine (same rclone version recommended) :
        rclone authorize "onedrive"
Then paste the result below:
result>

这里我们输入刚才复制的一大堆字符串
Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business
   \ "onedrive"
 2 / Root Sharepoint site
   \ "sharepoint"
 3 / Type in driveID
   \ "driveid"
 4 / Type in SiteID
   \ "siteid"
 5 / Search a Sharepoint site
   \ "search"
Your choice>

这里输入1

Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=b!5aaxzEKnQ0moUdSJN5FFiz18jOg3bKJDpnlLne7FeEjh0fnzsP3TSIpazFa4zHn9
Chose drive to use:>

这里显示出来了网盘序号,输入0
Found drive 'root' of type 'business', URL: https://ememe-my.sharepoint.com/personal/admin_ememe_onmicrosoft_com/Documents
Is that okay?
y) Yes (default)
n) No
y/n> 

配置好了。输入y

drive_id = b!5aaxzEKnQ0moUdSJN5FFiz18jOg3bKJDpnlLne7FeEjh0fnzsP3TSIpazFa4zHn9
drive_type = business
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d

到这里我就就已经配置完成,输入y
然后就没事了。输入q退出rclone就行

 

第六步:别忘了还需要安装个screen

apt-get install -y screen    //这是debian系

centos系安装screen需要使用yum install screen

上传命令

rclone move source:path dest:path    //别急看完下面的

screen rclone copy /root/download onedrive1:/upload --transfers 32 -P    //完整的命令,这里用的move,注意这样会把本地的文件删除,一般使用copy

rclone_upload

 

参数详解:

source:path是本地目录,dest:path是云端目录

其中dest是网盘名称,就你刚才随便取的那个path就是目录

你可以指定上传到哪一个文件夹

比如说,

我要把本地的/root/download目录下所有的文件移动到onedrive里面的/upload文件夹里面

命令应该是rclone move /root/download onedrive1:/upload

但是这样上传的话,他一直在前台上传,占用你的ssh。
想让他变成后台,在前面加上screen

命令就是:screen rclone move /root/download onedrive1:/upload

这样你就可以关掉ssh,他就可以在后台上传

如果文件目录比较复杂,而且文件数量庞大
可以提高线程,他默认是4线程,测试后发现100M带宽32线程效果最好。(根据你的vps而定线程。)

可以在后面再加一个参数 -P(大写)显示上传详情

screen rclone move /root/download onedrive1:/upload –transfers 32 -P

screen

等你想看看传完了没有的时候,
screen -ls就可以看到后台screen进程。