[TOC]
# linux 同步微软网盘OneDrive
## 前言
微软网盘OneDrive是一个非常好的工具,关键是免费,那么linux能不能享用?微软没有开发官方的支持,而且,国内Onedrive的网站被封了,只能通过客户端使用。幸运的是,开源大佬们开发了自由免费的工具:
## 安装步骤
1. `sudo apt install libcurl4-openssl-dev`
2. `sudo apt install libsqlite3-dev`
3. 安装D语言编译器,去官网下载:, 我下的是: 。然后安装`sudo apt install ./dmd_2.086.0-0_amd64.deb`。
4. `git clone https://github.com/skilion/onedrive.git`
5. `cd onedrive`
6. `make`
7. `sudo make install`
## 第一次使用
第一次使用,会需要微软授权。
1. `onedrive` 会给出一个链接,用浏览器打开,让你输入微软帐号,然后授权,之后跳到一个空白网页。将该网页的地址复制,粘帖回命令行的等待提示处,即可。
2. 默认会同步到~/OneDrive目录
## 修改配置
如果不想使用默认的配置:
1. ~/.config/onedrive/config :编辑这个配置文件,如果没有就创建
2. 内容:
1. sync_dir : 同步本地目录
2. skip_file : 过滤不同步的文件
3. sync_list : 同步的远程目录和文件列表
## 后台服务
默认会安装一个后台服务,它负责监控文件夹,自动同步数据。
1. `systemctl --user status onedrive` 查看运行情况
2. `systemctl --user start onedrive` 启动
3. `journalctl --user-unit onedrive` 查看日志
4. sytemctl 的其他参数
1. enable 开机自动启动
2. restart 重启服务
3. stop 停止
4. disable 关闭自动启动
## 具体步骤
默认安装了onedrive 这个工具,和一个后台服务onedrive.service (以下是参考内容,不懂可以跳过)
```bash
install -D onedrive /usr/local/bin/onedrive
install -D -m 644 onedrive.service /usr/lib/systemd/user/onedrive.service
```
用户要做的事情有两个,一个是启动后台,另一个是登录。登录只需要执行一次,下次会记录。
```bash
# 启动后台
systemctl --user start onedrive
# 如果希望开机就启动,执行
systemctl --user enable onedrive
# 登录账号
onedrive
```
![](https://raw.githubusercontent.com/wiki/deepinwiki/wiki/pics/2020-02-05-12-55-11.png)
上图的提示意思是让你复制该链接到浏览器,然后正常登录,进入一个空白页面,然后复制浏览器反馈的链接,再复制到这里,这就完成了登录认证的过程。
如图所示即完成了认证登录:
![](https://raw.githubusercontent.com/wiki/deepinwiki/wiki/pics/2020-02-05-12-58-27.png)
下次开机,后台服务可能没有启动,就再启动一次即可。启动之后,你想看当前同步的反馈信息,可以用:
```bash
journalctl --user-unit onedrive
```
这个工具速度也不会很快,并且完善度不是很好,不太稳定。还可以通过虚拟一个windows来使用这个网盘,也许效果还好一些。
## 参考
一键复制
编辑
Web IDE
原始数据
按行查看
历史