Synchronisieren von OneDrive Business / Office 365 unter Linux


24

Microsoft OneDrive Business / Office 365 Pro bietet 1 TB Cloud-Speicher. Leider gab es noch nie eine Methode zur Synchronisierung unter Linux.


2
Willkommen bei Ask Ubuntu ! Wir sind eine Frage- und Antwortseite, kein Forum. Derzeit haben Sie sowohl eine Frage als auch eine Antwort im entsprechenden Fragenbereich. Bitte bearbeite deinen Beitrag, um die Antwort zu entfernen, und poste sie im Antwortbereich unten (es sollte einen Knopf am unteren Rand der Seite geben). Vielen Dank!
Seth

Antworten:


7

Derzeit ist das experimentelle onedrive-d ein Open-Source-Programm, das nur persönliche OneDrive-Konten synchronisieren kann, da es keine Microsoft Sharepoint-Links akzeptiert. Hier ist eine Methode zum Synchronisieren von OneDrive Business / Office 365 mit GoodSync für Linux , das für den persönlichen Gebrauch kostenlos ist.

  1. Installieren Sie eine geeignete Version auf Ihrem Linux-Rechner, zB:

    ./goodsync-linux-x86_64-release.run
    

    Antwort von n o für beide GoodSync Connect Setup und GsServer Web - Benutzeroberfläche.

  2. Öffnen Sie OneDrive in einem Webbrowser. Wählen Sie rechts unten "Return to Classic OneDrive".
  3. Die Webadresse in Ihrem Browser sieht nun so aus: https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspxund basierend darauf erhalten Sie Ihren Synchronisierungslink, der sein wird office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
  4. Erstellen Sie eine neue Datei im Unterordner .goodsync in Ihrem Zuhause:

    gedit ~/.goodsync/jobs.tix
    
  5. Geben Sie den folgenden Code in die Datei ein und speichern Sie ihn:

    <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. Starten Sie den Synchronisierungsvorgang:

    gsync sync "OneDrive_Sync"
    
  7. In diesem Schritt öffnet Ihr Webbrowser die OneDrive / Office 365-Seite und fordert Sie zur Autorisierung auf, damit goodsync auf Ihr Konto zugreifen kann. Nach Eingabe Ihrer Anmeldeinformationen wird die Synchronisierung gestartet.

Einschränkungen: Microsoft erlaubt keine URL-Anfragen mit einer Länge von mehr als 270 Zeichen. GoodSync KANN daher KEINE Dateien mit langen Pfadnamen synchronisieren.

Genießen!


3
Mein Webbrowser öffnet die Autorisierungsseite in Schritt 7 nicht. Haben Sie eine Idee, wie Sie dies manuell tun können?
pat-s

3
Mein Webbrowser öffnet sich nicht, um sich ebenfalls
anzumelden

2
Dateisystem bei office365: /.../ Dokumente wurde durch die neue OneDrive V2-API ersetzt. Klicken Sie auf die Schaltfläche Durchsuchen, um erneut zu Ihrem OneDrive-Synchronisierungsordner zu navigieren, da für New OneDrive eine browserbasierte Authentifizierung (OAuth2) erforderlich ist
Ferroao,

6

Ubuntu 18.04 und höher

Es gibt einen OneDrive-Client in den Ubuntu-Standardrepositorys in Ubuntu 18.04 und höher. OneDrive ist das Cloud-Speichersystem von Microsoft. Dieses Paket enthält den Befehlszeilenclient, der auf die Synchronisierung mit OneDrive Cloud Storage spezialisiert ist.

Installiere es mit:

sudo apt install onedrive

Beim ersten Start werden Sie aufgefordert, sich mit einem Link zu authentifizieren. Nach der Authentifizierung können Sie den Deamon mit systemctl --user enable onedriveund dann aktivieren systemctl --user start onedrive. Weitere Erläuterungen finden Sie in der Manpage man onedrive. Die Einrichtung ist sehr einfach und dauert nur etwa fünf Minuten.


4
Dies funktioniert nicht für OneDrive for Business
Tricasse

1
@tricasse Es funktioniert für Office 365 Pro
Mattia_98

2

Das ursprüngliche und onedrivedvon xybu häufig verwendete Tool unterstützt zwar noch nicht OneDrive for Business, aber nur persönliche OneDrives. Es gibt jedoch einen Fork dieses Projekts auf GitHub von derrix060 , der eine irgendwie funktionierende (aber immer noch fehlerhafte) Implementierung für den Business-Client hat.

Warnung: Wenn Sie diese Methode verwenden, empfehle ich dringend, immer zu überprüfen, ob die Dateien korrekt synchronisiert wurden, indem Sie sie online unter https://www.office.com überprüfen und / oder mein am Ende dieser Seite gezeigtes Wrapper-Skript verwenden um sich zumindest mit Desktop-Benachrichtigungen über Fehler zu informieren!

Manchmal kann es vorkommen, dass onedrived einige Änderungen nicht aufnimmt oder nicht korrekt hochlädt, sodass sich Ihr OneDrive in einem (teilweise) nicht synchronisierten Zustand befindet. Es kann auch vorkommen, dass es aus irgendeinem Grund Zusammenführungskonflikte mit sich selbst erzeugt und Ihre Dateien lokal umbenennt, indem Sie Ihren Hostnamen in Klammern und optional eine Zahl anhängen. Leider gibt es keine Benachrichtigung über Fehler, aber Sie können die Einträge in Ihrer Protokolldatei sehen.

In diesem Fall können Sie versuchen, die entsprechenden Dateien erneut zu synchronisieren, indem Sie sie beispielsweise berühren oder umbenennen oder den Ordner, in dem sie sich befinden.

Tipp: Es sieht so aus, als ob in der Onedrived-Bibliothek häufig Probleme auftreten, insbesondere bei Dateien, die direkt im OneDrive-Stammverzeichnis gespeichert wurden. Es ist wahrscheinlich besser, alle Dateien in Unterverzeichnissen abzulegen, als sie direkt in den OneDrive-Ordner zu kopieren.

Obwohl es sich dumm anhört, ist mir auch aufgefallen, dass das Hochladen von Dateien über den OneDrive-Webclient anscheinend weniger Probleme verursacht, als das Erstellen oder Kopieren / Verschieben von Dateien örtlich. Ob dies praktisch ist oder völlig ungültig, der Zweck von OneDrive liegt in Ihrer eigenen Entscheidung ...

Eine vollständige Installationsanleitung finden Sie in der Readme-Datei des Projekts. Hier eine kurze Zusammenfassung:

Installation

  1. Stellen Sie sicher, dass keine andere Version von onedrived(oder onedrive-d) installiert ist.

  2. Installieren Sie Abhängigkeitspakete:

    sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
    
  3. Laden Sie den neuesten ngrokClient für Linux von der offiziellen Website unter https://ngrok.com/download herunter . Das ngrok-clientPaket aus den Ubuntu-Repositories ist zu alt und entspricht nicht den Anforderungen.
    Entpacke das heruntergeladene ngrok-stable-linux-amd64.zipArchiv. Es enthält eine einzelne ngrokBinärdatei, die Sie an einer Stelle auf Ihrem $PATH, z /usr/local/bin/. B. in , ablegen sollten .
    Eine Anmeldung bei ngrok ist wahrscheinlich nicht erforderlich.

  4. Installieren Sie die onedrivedPython3-Anwendung von GitHub mit pip3:

    sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
    
  5. Konfigurieren Sie optional einen Speicherort für die Protokolldatei onedrived, für den Sie nach Problemen suchen können, wenn etwas nicht korrekt funktionieren sollte, z.

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

Kontoeinrichtung und Laufwerkskonfiguration

Nach erfolgreicher Installation müssen Sie Ihr Konto und Ihre Laufwerke konfigurieren:

  1. Fügen Sie Ihr OneDrive for Business-Konto im interaktiven Modus hinzu, indem Sie Folgendes ausführen:

    onedrived-pref account add -b
    

    Der interaktive Assistent fordert Sie zweimal auf, einen Link in Ihrem Browser zu öffnen, über den Sie die Anwendung mit Ihrem Microsoft Business-Konto autorisieren müssen.
    Nach Bestätigung der Autorisierung werden Sie aufgefordert, die URL, zu der Sie umgeleitet werden, in den interaktiven Assistenten einzufügen. Bitte befolgen Sie die Anweisungen des Befehls.

  2. Überprüfen Sie, ob das Konto erfolgreich hinzugefügt wurde, indem Sie die Ausgabe des folgenden Befehls überprüfen. Es sollte ähnlich aussehen und das Konto auflisten, mit dem Sie angemeldet sind:

    $ 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. Konfigurieren Sie Ihre Laufwerke im interaktiven Befehlsmodus, indem Sie Folgendes ausführen:

    onedrived-pref drive set
    

    Sie sehen eine Liste aller Laufwerke und werden aufgefordert, die Zeilennummer des Laufwerks einzugeben, das Sie zu Ihrer lokalen Konfiguration hinzufügen möchten.
    Anschließend müssen Sie ein lokales Verzeichnis angeben, das Sie als Stammordner für die Synchronisierung mit Ihrem Laufwerk verwenden möchten. Sie können einfach drücken Enterund es wird die Standardeinstellung verwendet ~/OneDrive. Wenn der Pfad nicht existiert, wird er erstellt. Das Gleiche gilt für den Pfad zu der zu verwendenden Ignorierdatei. Sie können einfach auf Enterdrücken. Die Standarddatei wird verwendet ~/.config/onedrived/ignore_v2.txtund bei Bedarf erstellt.

  4. Überprüfen Sie die Ausgabe des folgenden Befehls, um die Informationen zu allen verfügbaren und konfigurierten Laufwerken anzuzeigen. Unter der Überschrift sollte das Laufwerk angezeigt werden, das Sie gerade mit den richtigen Einstellungen eingerichtet haben Drives that have been set up:

    onedrived-pref drive list
    

Den Daemon starten

Nachdem Sie Ihr Laufwerk konfiguriert haben, müssen Sie versuchen, den onedrivedDaemon zu starten . Ich empfehle, es zuerst im Debug-Modus zu starten, falls es Probleme gibt, die Sie sonst vermissen würden. Dies wird onedrivedim Vordergrund beginnen:

onedrived start --debug

Wenn alles in Ordnung ist und der Befehl nicht abstürzt und beendet wird, versuchen Sie, einige Dateien in Ihrem lokalen OneDrive-Ordner abzulegen und zu überprüfen, ob die Synchronisierung erfolgt. Sie sollten dies möglicherweise überprüfen können, indem Sie die OneDrive-Webanwendung unter https://www.office.com aufrufen und prüfen, ob die lokal hinzugefügten Dateien dort angezeigt werden.

Sie können den onedrivedVorgang in Ihrem Terminal wieder beenden, indem Sie Ctrl+ drücken C.

onedrivedFühren Sie zum normalen Starten als Hintergrund-Daemon Folgendes aus:

onedrived start

Sie sollten diesen Befehl wahrscheinlich zu Ihren Startup-Anwendungen hinzufügen, damit er bei jeder Anmeldung automatisch gestartet wird. Weitere Informationen finden Sie unter Wie starte ich Anwendungen beim Anmelden automatisch ?. dafür.

Wrapper für Fehlermeldungen

Wenn Sie Desktop-Benachrichtigungen erhalten möchten, wenn onedrivedein Fehler protokolliert wird (z. B. fehlgeschlagene Dateisynchronisierung), finden Sie hier ein Wrapper-Skript, das die Protokolldatei in Echtzeit analysiert und diese mithilfe von notify-send anzeigt.

Sie können das Wrapper-Skript anstelle des onedrived startBefehls ohne Argumente starten (oder in Ihre Autostart-Anwendungen einfügen) .

#!/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

Ich erhalte weiterhin die Meldung "Fehler beim Autorisieren von onedrived: interact_required". Nachdem ich den zweiten Link zur Authentifizierung des ODfB-Kontos eingegeben habe. Irgendwelche Ideen, warum das passieren könnte?
Jimakos

@Jimakos Entschuldigung, ich bin auf diese Nachricht nie gestoßen. Keine Ahnung leider.
Byte Commander

1

rclone unterstützt OneDrive for Business. Weitere Informationen finden Sie im Artikel Bereitstellen von OneDrive unter Linux mithilfe von Rclone (unterstützt geschäftliche und private Konten) - Linux Uprising Blog .

Hier ist mein Beispiel, um eine neue Fernbedienung onedrive1mit rclone 1.48.0 (unter Fedora 30) einzurichten:

$ 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

Die URL von Laufwerk 0 endet mit /ElementinnerHTMLund enthält in meinem Fall keine Dateien.

Mounten Sie es dann in einem lokalen Verzeichnis über die Befehlszeile, den RClone-Browser oder die Web-GUI seit v1.49 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.