Linux에서 OneDrive Business / Office 365를 동기화하는 방법은 무엇입니까?


24

Microsoft OneDrive Business / Office 365 Pro는 1TB의 클라우드 저장소를 제공하지만 불행히도 Linux에서 동기화하는 방법은 없었습니다.


2
우분투에 오신 것을 환영합니다 ! 우리는 포럼이 아닌 질문과 답변 사이트입니다. 현재 지정된 질문 섹션에 질문과 답변이 있습니다. 제발 편집 아래의 응답 섹션 (페이지 하단에있는 버튼이 있어야한다)이라는 응답 및 게시물을 제거하기 위해 귀하의 게시물을. 감사!
Seth

답변:


7

현재 실험용 onedrive-d는 Microsoft Sharepoint 링크를 허용하지 않으므로 개인 OneDrive 계정 만 동기화 할 수있는 오픈 소스 프로그램입니다. 다음은 Linux 용 GoodSync를 사용하여 OneDrive Business / Office 365를 동기화하는 방법 이며 개인용으로 무료입니다.

  1. Linux 시스템에 적합한 버전을 설치하십시오. 예 :

    ./goodsync-linux-x86_64-release.run
    

    GoodSync Connect 설정 및 GsServer Web UI 모두에 대해 n o로 답변 하십시오.

  2. 웹 브라우저에서 OneDrive를 엽니 다. 오른쪽 하단에서 "클래식 OneDrive로 돌아 가기"를 선택하십시오.
  3. 브라우저의 웹 주소는 이제 다음과 같습니다. https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspx이를 기반으로하는 동기화 링크 를 얻습니다 office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
  4. 집의 .goodsync 하위 폴더에 새 파일을 작성하십시오.

    gedit ~/.goodsync/jobs.tix
    
  5. 파일에 다음 코드를 입력하고 저장하십시오.

    <Job>
    Name = "OneDrive_Sync"
    Side1 = <SideOptions>
    Dir = <Connect>
        Url = "put_your_syncing_link_here"
        UserID = "put_your_OneDrive/Office365_Bussiness_email_here"
    </Connect>
    </SideOptions>
    Side2 = <SideOptions>
    Dir = <Connect>
        Url = "file:///your_home_folder/one_drive_folder"
    </Connect>
    </SideOptions>
    Direction = 0
    ExcludeHidden = No
    ExcludeSystem = No
    DetectMovesAndRenames = Yes
    LinksOption = 1
    ExcludeEmptyFolders = No
    LimitChangesPercent = 100
    AutoResolveConflicts = 3
    DetectMovesAndRenames = Yes
    </Job>
    
  6. 동기화 프로세스를 시작하십시오.

    gsync sync "OneDrive_Sync"
    
  7. 이 단계에서 웹 브라우저는 OneDrive / Office 365 페이지를 열고 goodsync가 계정에 액세스 할 수 있도록 승인을 요청합니다. 자격 증명을 입력하면 동기화가 시작됩니다.

제한 사항 : Microsoft는 길이가 270자를 초과하는 URL 요청을 허용하지 않으므로 GoodSync는 긴 경로 이름을 가진 파일을 동기화 할 수 없습니다.

즐겨!


3
7 단계에서 웹 브라우저가 인증 페이지를 열지 않습니다. 수동으로 수행하는 방법에 대한 아이디어가 있습니까?
pat-s

3
내 웹 브라우저도 로그인 할 수 없습니다
Haha TTpro 2016 년

2
office365 : /.../ Documents의 파일 시스템이 New OneDrive V2 API로 대체되었습니다. 새로운 OneDrive에는 브라우저 기반 인증 (OAuth2)이 필요하므로 찾아보기 버튼을 클릭하여 OneDrive 동기화 폴더를 다시 찾아보십시오
Ferroao

6

우분투 18.04 이상

Ubuntu 18.04 이상의 기본 Ubuntu 리포지토리에 OneDrive 클라이언트가 있습니다. OneDrive는 Microsoft의 클라우드 스토리지 시스템입니다. 이 패키지는 OneDrive 클라우드 저장소와의 동기화를 전문으로하는 명령 줄 클라이언트를 제공합니다.

다음과 같이 설치하십시오.

sudo apt install onedrive

처음 실행할 때 링크로 인증하도록 요청합니다. 인증 후 systemctl --user enable onedrive및로 데몬을 활성화 할 수 있습니다 systemctl --user start onedrive. 자세한 설명은 맨 페이지에서 찾을 수 있습니다 man onedrive. 설정이 매우 쉽고 약 5 분 밖에 걸리지 않습니다.


4
이 사업을 위해 원 드라이브에 대한 작업을하지 않습니다
tricasse

1
@tricasse 그것은 Office 365 Pro에서 작동
Mattia_98

2

onedrivedxybu가 일반적으로 사용하는 원본 도구는 여전히 비즈니스 용 OneDrive를 지원하지 않지만 개인용 OneDrive 만 지원합니다. 그러나 derrix060에 의해 GitHub 에이 프로젝트의 포크가 있어 비즈니스 클라이언트에 대해 어떻게 든 작동하지만 여전히 버그가 있습니다.

경고 : 이 방법을 사용할 때는 항상 https://www.office.com 에서 온라인으로 파일을 확인하여 파일이 올바르게 동기화되었는지 확인 하거나이 페이지 끝에 표시된 래퍼 스크립트를 사용하는 것이 좋습니다. 최소한 데스크톱 알림을 사용하여 오류를 통보 받으십시오!

때때로 onedrived는 일부 변경 사항을 선택하지 못하거나 올바르게 업로드하여 OneDrive를 (일부) 동기화되지 않은 상태로 유지하는 것처럼 보입니다. 또한 어떤 이유로 든 자체와의 충돌 충돌을 생성하고 호스트 이름을 괄호로 묶고 선택적으로 숫자를 추가하여 파일 이름을 로컬로 바꿉니다. 불행히도 오류에 대한 알림은 없지만 로그 파일의 항목을 볼 수 있습니다.

이 경우 해당 파일을 터치하거나 이름을 바꾸거나 파일의 이름을 바꾸어 해당 파일을 다시 동기화하도록 할 수 있습니다.

팁 : onedrived 라이브러리에는 특히 OneDrive 루트에 직접 저장된 파일에 문제가있는 것 같습니다. 모든 파일을 OneDrive 폴더로 직접 덤프하는 대신 하위 디렉토리에 배치하는 것이 좋습니다.

어리석게 들리지만 OneDrive 웹 클라이언트를 통해 파일을 업로드하고 파일을 만들거나 복사 / 이동하는 것보다 로컬 폴더로 다시 동기화 될 때까지 기다립니다 (몇 분이 걸릴 수 있음). 토지 상에서. 이것이 실용적이거나 완전히 무효인지 여부는 OneDrive의 목적은 귀하의 결정에 달려 있습니다 ...

전체 설치 지침은 프로젝트의 readme 파일을 참조하십시오. 그러나 다음은 간단한 요약입니다.

설치

  1. 다른 버전 onedrived(또는 onedrive-d)이 설치되어 있지 않은지 확인하십시오 .

  2. 종속성 패키지를 설치하십시오.

    sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
    
  3. ngrok공식 웹 사이트 ( https://ngrok.com/download) 에서 Linux 용 최신 클라이언트를 다운로드 하십시오 . ngrok-clientUbuntu 리포지토리 의 패키지가 너무 오래되어 요구 사항을 충족하지 않습니다.
    다운로드 한 ngrok-stable-linux-amd64.zip아카이브의 압축을 풉니 다 . 여기에는 단일 ngrok바이너리 가 포함되어 있습니다 $PATH(예 :에 위치) /usr/local/bin/.
    ngrok에 가입 할 필요는 없습니다.

  4. 다음을 onedrived사용하여 GitHub 에서 Python3 애플리케이션을 설치하십시오 pip3.

    sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
    
  5. 선택적으로에 대한 로그 파일 위치를 구성하십시오 onedrived. 여기서 올바르게 작동하지 않는 경우 문제점을 확인할 수 있습니다. 예 :

    onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
    

계정 설정 및 드라이브 구성

설치가 완료되면 계정 및 드라이브를 구성해야합니다.

  1. 다음을 실행하여 대화 형 모드를 사용하여 비즈니스 용 OneDrive 계정을 추가하십시오.

    onedrived-pref account add -b
    

    대화 형 마법사는 브라우저에서 Microsoft Business 계정으로 응용 프로그램을 인증해야하는 링크를 두 번 열도록 요청합니다.
    인증을 확인한 후 리디렉션 된 URL을 대화식 마법사에 다시 붙여 넣으라는 메시지가 표시됩니다. 지시에 따라 수행하고 명령이 제공하는 지시를 따르십시오.

  2. 아래 명령의 출력을 확인하여 계정이 추가되었는지 확인하십시오. 비슷하게 보이고 로그인 한 계정이 나열됩니다.

    $ onedrived-pref account list
    
    All OneDrive accounts associated with user "YOUR_UBUNTU_USERNAME":
    
      #  Account ID                 Owner Name     Email Address         Profile Type
    ---  -------------------------  -------------  --------------------  --------------
      0  YOUR_PERSONAL_ACCOUNT_ID   YOUR_NAME      YOUR_BUSINESS_EMAIL   Business
    
  3. 다음을 실행하여 대화식 명령 모드에서 드라이브를 구성하십시오.

    onedrived-pref drive set
    

    모든 드라이브 목록이 표시되고 로컬 구성에 추가하려는 드라이브의 행 번호를 입력하라는 메시지가 표시됩니다.
    그런 다음 드라이브와 동기화하기 위해 루트 폴더로 사용할 로컬 디렉토리를 지정해야합니다. 당신은 그냥 칠 수 있으며 Enter기본값을 사용합니다 ~/OneDrive. 경로가 존재하지 않으면 작성됩니다. 사용하려는 무시 파일의 경로와 동일 합니다. 필요한 경우 Enter기본값을 사용하여 ~/.config/onedrived/ignore_v2.txt작성합니다.

  4. 사용 가능한 모든 구성된 드라이브에 대한 정보를 표시하려면 아래 명령의 출력을 확인하십시오. 방금 설정 한 드라이브가 제목 아래에 올바른 설정으로 표시되어야합니다 Drives that have been set up.

    onedrived-pref drive list
    

데몬 시작

드라이브가 구성 onedrived되었으므로 데몬을 시작하고 시작해야합니다 . 다른 방법으로 놓칠 수있는 문제가있는 경우 디버그 모드에서 먼저 시작하는 것이 좋습니다. onedrived포 그라운드에서 시작 됩니다.

onedrived start --debug

모든 것이 정상이고 명령이 중단되고 종료되지 않으면 일부 파일을 로컬 OneDrive 폴더에 놓고 동기화되는지 확인하십시오. https://www.office.com 의 OneDrive 웹 응용 프로그램을 방문하여 로컬로 추가 한 파일이 여기에 나타나는지 확인하면됩니다 .

+ onedrived를 눌러 터미널 에서 프로세스를 다시 종료 할 수 있습니다 .CtrlC

onedrived백그라운드 데몬으로 정상적으로 시작하려면 다음을 사용하여 실행하십시오.

onedrived start

로그인 할 때마다 자동으로 시작되도록이 명령을 시작 응용 프로그램에 추가해야합니다. 로그인시 응용 프로그램을 자동으로 시작 하려면 어떻게합니까?를 참조하십시오. 그에 대한.

오류 알림 래퍼

onedrived오류가 기록 될 때마다 (예 : 파일 동기화 실패) 데스크탑 알림을 받으려면 로그 파일을 실시간으로 구문 분석하고 알림 보내기를 사용하여이를 표시하는 래퍼 스크립트가 있습니다.

onedrived start명령 대신 래퍼 스크립트를 인수없이 시작하거나 자동 시작 응용 프로그램에 넣을 수 있습니다 .

#!/bin/bash
LOGFILE=~/.config/onedrived/onedrived.log
ICON_START=weather-overcast
ICON_STOP=weather-few-clouds
ICON_ERROR=weather-severe-alert

onexit () {
    onedrived stop
    notify-send -i "$ICON_STOP" "OneDrive" "Wrapper stopped"
    echo "onedrived-wrapper stopped"
}

trap onexit EXIT

onedrived stop
echo "---" >> "$LOGFILE"

onedrived start || {
    echo "Failed to start onedrived!"
    exit 1
}
notify-send -i "$ICON_START" "OneDrive" "Wrapper started"

echo "Monitoring onedrived.log for error messages..."
tail -n 1 -F --pid="$(pgrep -f "onedrived start")" "$LOGFILE" |
    while read LINE ; do
        echo "$LINE"
        if MESSAGE="$(grep -Pio '(?<=ERROR: ).*' <<< "$LINE")" ; then
            notify-send -i "$ICON_ERROR" "OneDrive Error" "$MESSAGE"
        fi
    done

여전히 "하나의 드라이브를 인증하지 못했습니다 : interaction_required"메시지가 나타납니다. ODfB 계정 인증을위한 두 번째 링크를 입력 한 후 왜 이런 일이 일어날 지 아십니까?
Jimakos

@Jimakos 죄송합니다. 해당 메시지가 없습니다. 안타깝게도
바이트 사령관

1

rclone 은 비즈니스 용 OneDrive를 지원합니다. 사용법은 Rclone을 사용하여 Linux에서 OneDrive를 마운트하는 방법 (비즈니스 및 개인 계정 지원)-Linux Uprising 블로그 기사를 참조하십시오 .

다음은 onedrive1rclone 1.48.0 (Fedora 30) 으로 새 리모컨을 설정하는 예입니다 .

$ rclone config
2019/10/10 06:35:56 NOTICE: Config file ".config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> onedrive1
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
⋮
19 / Microsoft OneDrive
   \ "onedrive"
⋮
Storage> 19      
** 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> 
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) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
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 2 drives, please select the one you want to use:
0: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T9B****
1: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T-H****
Chose drive to use:> 1
Found drive 'root' of type 'business', URL: https://example-my.sharepoint.com/personal/myname_example_com/Documents
Is that okay?
y) Yes
n) No
y/n> y
Current remotes:

Name                 Type
====                 ====
onedrive1            onedrive

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> q

드라이브 0의 URL /ElementinnerHTML은 내 경우에는 파일로 끝나고 파일을 포함하지 않습니다.

그런 다음 v1.49부터 명령 행, rclone-browser 또는 웹 GUI 를 통해 로컬 디렉토리에 마운트하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.