最近因为要从vps备份一些文件到onedrive,一开始用的是rclone,不过rclone备份文件时总是漏掉一些。然后就寻找到了这个。
支持OneDrive for Business。
安装
Github地址:https://github.com/abraunegg/onedrive
安装依赖
首先要安装一些必要的组件:
libcurl
SQLite 3 >= 3.7.15
Digital Mars D Compiler (DMD)
#Ubuntu和Debian x86_64系统apt-get install build-essential -y
apt-get install libcurl4-openssl-dev -y
apt-get install libsqlite3-dev -y
apt-get install git make -y
curl -fsS https://dlang.org/install.sh | bash -s dmd
#Debian i386/i686系统apt install build-essential -y
apt install libcurl4-openssl-dev -y
apt install libsqlite3-dev -y
apt install git make -y
mkdir ldc && cd ldc
wget http://ftp.us.debian.org/debian/pool/main/l/ldc/ldc_1.8.0-3_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/l/ldc/libphobos2-ldc-shared-dev_1.8.0-3_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/l/ldc/libphobos2-ldc-shared78_1.8.0-3_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/l/llvm-toolchain-5.0/libllvm5.0_5.0.1-2~bpo9+1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/n/ncurses/libtinfo6_6.1+20180714-1_i386.deb
sudo dpkg -i ./*.deb
#CentOS系统yum groupinstall 'Development Tools' -y
yum install libcurl-devel -y
yum install sqlite-devel -y
curl -fsS https://dlang.org/install.sh | bash -s dmd
#Arch Linux系统pacman -S curl sqlite dmd
- 安装客户端
source ~/dlang/dmd-2.081.1/activate //具体位置看你自己下载到哪里了
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure
make
make install
以上步骤后,客户端就安装完毕了,如果编译出现错误,请自行按照报错修改。 - 认证客户端
我们可以输入 onedrive 来认证。终端会出现一个链接,复制到桌面端打开并允许授权就ok了。
- 同步
#该命令第一次会将OneDrive网盘所有文件/文件夹都下载同步到VPS的/root/OneDrive文件夹。
onedrive --synchronize
此后如果OneDrive网盘或者/root/OneDrive文件夹里的文件/文件夹有变动,再执行该命令会进行双向对应的变动/同步。
在某些情况下(如备份网站数据),可能只需要上传到OneDrive。这样我们可以使用以下命令:
onedrive --synchronize --upload-only
此命令会同步/root/OneDrive文件夹下的文件。 卸载客户端
cd /root/onedrive
make uninstall
rm -rf ~/.config/onedrive
最后,一般默认的同步文件夹为/root/OneDrive,其实我们是可以更改的,比如更改到/root/123文件夹。
新增并编辑配置文件
vi /root/.config/onedrive/config
添加以下代码:
sync_dir="/root/123"
其他具体用途参考Github原文。