[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
原始資料
按行檢視
曆史