GNU/Linux >> Tutoriels Linux >  >> Debian

Comment garder OneDrive synchronisé avec un dossier sous Linux à l'aide de OneDrive Free Client Fork

OneDrive est un service d'hébergement et de synchronisation de fichiers proposé par Microsoft, similaire à Dropbox, Google Drive, MEGA, etc. Il n'y a pas de client Microsoft OneDrive officiel pour Linux, mais il est toujours possible de partager vos fichiers OneDrive (avec de vrais time -File Watcher) dans un dossier sur votre ordinateur Linux Fork of OneDrive Free Client qui est toujours maintenu (un client de ligne de commande OneDrive pour Linux).

Il y a quelque temps, j'ai écrit sur le montage de OneDrive sous Linux avec Rclone (avec prise en charge des comptes professionnels et personnels). Certains utilisateurs peuvent préférer synchroniser leurs fichiers OneDrive avec un dossier sur leur ordinateur Linux (avoir les fichiers sur le disque dur après la synchronisation, afin qu'ils soient accessibles même lorsque l'ordinateur est hors ligne), ne chargez/téléchargez que les modifications au lieu de monter OneDrive, et dans cet article, nous ferons exactement cela avec un fork de OneDrive Free Client.

Le client gratuit OneDrive d'origine a été abandonné à l'automne 2018, mais l'outil a été créé quelques mois plus tard sous le même nom et n'a cessé d'évoluer depuis.

Le OneDrive Free Client Fork est un outil complet pour interagir et synchroniser OneDrive sur Linux avec les fonctionnalités suivantes :

  • Mise en cache d'état
  • Surveillance des fichiers en temps réel avec Inotify
  • Validation du chargement/téléchargement des fichiers pour garantir l'intégrité des données
  • Importations avec reprise
  • Assistance OneDrive Entreprise (partie d'Office 365)
  • Dossiers partagés (OneDrive personnel)
  • Bibliothèques SharePoint/Office 365
  • Notifications de bureau via libnotify
  • Capacité de simulation pour tester les changements de configuration
  • Éviter la suppression accidentelle des données OneDrive après un changement de configuration


Comme le projet d'origine, le fork OneDrive Free Client n'a pas d'interface utilisateur graphique, il doit donc être utilisé à partir de la ligne de commande, bien qu'il inclue des notifications sur le bureau pour vous informer de l'état de la synchronisation et de tout erreurs de synchronisation qui se produisent.

Il est également important de noter que même si les modifications locales sont immédiatement téléchargées sur le compte Microsoft OneDrive lié, les modifications à distance sont retardées jusqu'à la prochaine synchronisation --monitor lorsqu'elles sont utilisées. (Ce mode "moniteur" permet au client gratuit OneDrive de surveiller en permanence votre système de fichiers local pour les modifications et de les télécharger lorsqu'elles sont détectées). Par exemple, si vous exécutez cet outil en tant que service, l'intervalle de surveillance du client OneDrive gratuit est de 45 secondes. La synchronisation des modifications à distance avec votre lecteur local peut prendre jusqu'à 45 secondes.

En ce qui concerne les dossiers partagés, pour les comptes OneDrive personnels, il vous suffit de les ajouter à votre OneDrive. Pour ce faire, rendez-vous sur le site Web OneDrive et connectez-vous à votre compte. Accédez ensuite à la liste des fichiers partagés, cliquez avec le bouton droit sur le dossier que vous souhaitez synchroniser, puis cliquez sur Add to my OneDrive . Les dossiers partagés ne sont actuellement pas pris en charge pour les comptes OneDrive Business ou Office 365.

Comment installer OneDrive Free Client (fork) sur Debian (et Ubuntu, etc.), Fedora et plus

La documentation OneDrive Free Client (fork) pour Linux mentionne que cet outil est disponible dans les référentiels Fedora, AUR pour Arch Linux / Manjaro, An slackbuilds.org pour Slackware et le canal instable sur NixOS.

L'outil est également disponible dans les dépôts officiels Debian et Ubuntu, bien que cela ne soit pas mentionné dans la documentation (édition :la documentation a été mise à jour pour refléter cela). Pour Ubuntu, le fork n'est disponible que dans Ubuntu 19.04, 19.10 et 20.04, tandis qu'Ubuntu 18.04 a toujours l'ancien client gratuit OneDrive non maintenu (dont je ne suis pas sûr qu'il fonctionne toujours, mais même si c'est le cas, il a beaucoup de bogues , qui ne sera jamais corrigé). Pour Debian, ce package OneDrive est disponible dans Sid et Bullseye.

Pour installer OneDrive Free Client (fork) à partir des dépôts officiels sur Fedora, Debian/Ubuntu utilise :

  • Installez OneDrive Free Client (fork) sur Fedora :
sudo dnf install onedrive

  • Installez le client gratuit OneDrive (fork) sur le système d'exploitation Solus :
sudo eopkg install onedrive

  • Installez OneDrive Free Client (fork) sur Debian Sid ou Bullseye / Ubuntu 20.10, 20.04 et 19.10 et les distributions Linux basées sur ces versions d'Ubuntu (comme Pop!_OS, Linux Mint etc.) / Raspbian Testing / Kali Linux :
sudo apt install onedrive


Le développeur recommande d'installer la dernière version à partir de la source même sur Ubuntu 19.10 car la version dans les référentiels est assez ancienne. Pour Debian Buster et Ubuntu 18.04 (et Pop!_OS 18.04, Linux Mint 19.*, Elementary OS 5 ou 5.1, etc.), vous devez créer OneDrive Free Client (fork) à partir de la source comme expliqué sur son wiki puisque la version dans les référentiels est l'ancienne application inutilisée.

[[Edit]]Sur Ubuntu 20.04 (et Linux Mint 20) et 20.10, vous pouvez installer le dernier OneDrive à l'aide d'un PPA :
sudo add-apt-repository ppa:yann1ck/onedrive
sudo apt install onedrive

Pour les autres distributions Linux, vérifiez si vous avez un package "onedrive" dans les référentiels et installez-le ou créez à partir de la source.

Une image Docker gratuite du client OneDrive (fork) est également fournie.

Comment utiliser OneDrive Free Client (fork) pour synchroniser Microsoft OneDrive avec un dossier sur votre ordinateur Linux

1. Autorisez OneDrive Free Client (fork) pour Linux avec votre compte Microsoft OneDrive.

Pour Office365 / Accéder à un Drive de groupe Sharepoint dans Office 365 Business ou Education, veuillez lire les instructions de cette page.

Pour les comptes personnels, ouvrez un terminal et exécutez :

onedrive

Lorsque vous l'exécutez pour la première fois, le terminal sur lequel vous avez exécuté "onedrive" affichera un message sur l'autorisation de cette application en suivant un lien. Copiez le lien affiché dans le terminal et collez-le dans un navigateur Web. Après vous être connecté à votre compte Microsoft, vous devriez voir une page vous demandant si vous souhaitez autoriser cette application à accéder à vos informations - cliquez sur Yes .

Après avoir cliqué sur Yes , vous serez redirigé vers une page vierge. C'est ok, c'est comme ça que ça devrait être. Vous devez maintenant copier et coller l'URL de cette page vierge dans le terminal où vous autoriserez l'outil OneDrive avec votre compte OneDrive.

Après cela, vous verrez un message dans le terminal indiquant que No OneDrive sync will be performed without either of these two arguments being present . C'est parce que nous n'avons pas essayé de synchroniser les fichiers, nous avons juste autorisé l'application onedrive avec votre compte onedrive, alors ignorez-les.

2. Synchronisation initiale entre OneDrive et votre système de fichiers local.

Une fois autorisé, vous pouvez synchroniser vos fichiers cloud OneDrive sur votre disque local. L'outil de ligne de commande OneDrive charge tous les fichiers OneDrive au format . vers le bas ~/OneDrive (un dossier OneDrive dans votre répertoire personnel). Vous n'avez pas besoin de créer ce dossier car l'outil Onedrive le créera pour vous.

Effectuons une simulation (test de synchronisation) sans modifications réelles pour nous assurer que ce client OneDrive gratuit pour Linux fonctionne correctement en utilisant :

onedrive --synchronize --verbose --dry-run

Si tout va bien, commençons à synchroniser vos fichiers OneDrive avec le ~/OneDrive local dossier. Vous pouvez synchroniser tous vos fichiers et dossiers OneDrive avec le dossier OneDrive local (étape 2A ci-dessous) ou synchroniser uniquement certains fichiers et dossiers (synchronisation sélective - étape 2B ci-dessous).

2A. Pour synchroniser TOUS vos fichiers cloud OneDrive sur votre disque local (vers ~/OneDrive), utilisez :

onedrive --synchronize

Il s'agit uniquement de la synchronisation initiale. Pour exécuter OneDrive Free Client pour Linux en arrière-plan et synchroniser les fichiers lorsque des modifications sont détectées, consultez l'étape 3 ci-dessous (Activer le service systemd).

2B. Activez et utilisez la synchronisation sélective.

Que faire si vous souhaitez synchroniser plusieurs répertoires et fichiers, mais pas tous ? Ensuite, vous devez utiliser la fonctionnalité de synchronisation sélective disponible avec ce client de ligne de commande OneDrive pour Linux.

La synchronisation sélective est une fonctionnalité qui vous permet de spécifier les fichiers et répertoires à synchroniser entre OneDrive et votre système de fichiers local, en ignorant tous les autres répertoires et fichiers.

Il est très important de noter que OneDrive Free Client pour Linux ne supprimera pas les répertoires ou fichiers déjà synchronisés de votre disque dur au cas où vous les excluriez ultérieurement par une synchronisation sélective. Ce qu'il fait les exclut des futures synchronisations.

Exemple :si vous autorisez uniquement OneDrive à synchroniser Dossier1 et Dossier2, lorsque vous ajouterez ultérieurement Dossier3 à votre répertoire OneDrive sur votre ordinateur, ce Dossier3 ne sera pas synchronisé avec votre compte OneDrive ; mais si Dossier1, Dossier2 et Dossier3 sont synchronisés avec votre compte OneDrive, puis décidez de synchroniser uniquement Dossier1 et Dossier2, Dossier3 ne sera pas supprimé du répertoire OneDrive sur votre ordinateur Linux, mais toutes les modifications que vous y apporterez seront supprimées. les dossiers ne seront pas synchronisés avec votre compte OneDrive.

Vous pouvez activer la synchronisation sélective pour OneDrive Free Client en copiant un fichier appelé . créer sync_list en ~/.config/onedrive . Modifiez ce sync_list Fichier et ajoutez le chemin relatif aux fichiers et répertoires que vous souhaitez synchroniser avec OneDrive, chacun sur une nouvelle ligne. Tous les fichiers et répertoires qui ne correspondent pas à une ligne de ce fichier seront ignorés de la synchronisation.

Exemple. Disons que j'ai beaucoup de fichiers et de dossiers dans mon compte OneDrive, mais je veux juste synchroniser 2 répertoires appelés Sauvegarde et Photos et 3 fichiers appelés file1.ods, file2.odt et file3.odt avec les 3 fichiers dans les documents sont dossiers de mon compte OneDrive. Dans ce cas, le ~/.config/onedrive/sync_list Le fichier doit contenir les lignes suivantes :

Backup
Photos
Documents/file1.odt
Documents/file2.odt
Documents/file3.odt

Lorsque vous utilisez la synchronisation sélective pour la première fois et à chaque fois que vous apportez des modifications au ~/.config/onedrive/sync_list Fichier dont vous avez besoin d'une resynchronisation complète avec --resync , comme ceci :

onedrive --synchronize --resync

Si le service systemd OneDrive Free Client est activé (étape 3 ci-dessous) et qu'il est en cours d'exécution, la tentative d'exécution de cette commande entraînera un message d'erreur indiquant :Initializing the Synchronization Engine ... A database statement execution error occurred: disk I/O error. Segmentation fault (core dumped) . Dans ce cas, vous devez arrêter le service onedrive systemd, puis exécuter la commande resync puis redémarrer le service comme ceci :

systemctl --user stop onedrive
onedrive --synchronize --resync
systemctl --user start onedrive

Il existe également des options pour ignorer un répertoire, ignorer des fichiers, des fichiers de points et des liens symboliques disponibles via le fichier de configuration OneDrive Free Client pour Linux (voir l'étape 5 ci-dessous).

Tout comme la synchronisation normale complète, cela ne s'applique qu'à la synchronisation initiale. Pour exécuter OneDrive Free Client pour Linux en arrière-plan et synchroniser les fichiers lorsque des modifications sont détectées, consultez l'étape 3 ci-dessous.

3. Activez le service systemd OneDrive Free Client pour Linux.

Pour que OneDrive Free Client pour Linux s'exécute en tant que service, afin qu'il démarre automatiquement avec votre ordinateur et soit constamment à l'affût des modifications OneDrive, synchronisant les fichiers et dossiers modifiés, nous activons son service systemd.

Lorsqu'il est utilisé en tant que service systemd, ce client de ligne de commande OneDrive pour Linux s'exécute en mode moniteur (--monitor ), qui permet à votre système de fichiers local d'être surveillé en permanence pour détecter les modifications apportées aux fichiers. Cependant, pour de nombreux fichiers, cela peut entraîner des problèmes (impossible d'ajouter une nouvelle horloge inotify) causés par l'environnement local. La solution à cela est d'augmenter le nombre maximum d'horloges utilisateur. Cette page montre comment le faire sur Debian / RedHat ou similaire (Ubuntu, Fedora, etc.) et Arch Linux / Manjaro.

Pour activer et démarrer le service OneDrive systemd (avec les notifications activées) pour votre utilisateur actuel (non root), exécutez :

systemctl --user enable onedrive
systemctl --user start onedrive

Vérifiez l'état du service du système OneDrive Free Client avec :

systemctl status --user onedrive

Vérifiez simplement les journaux :

journalctl --user-unit onedrive -f

lié à systemd :chkservice est un gestionnaire de périphériques systemd avec une interface utilisateur de terminal (nouvelle version disponible)

Pour d'autres façons d'exécuter le service OneDrive (en tant qu'utilisateur root via init.d), consultez sa documentation.

Il est très important de noter que vous devez utiliser le ~/OneDrive (ou quel que soit le chemin que vous utilisez pour le dossier OneDrive) pendant que le service systemd fork OneDrive Free Client est en cours d'exécution , car tous vos fichiers seront supprimés de OneDrive (vous pouvez toujours y accéder dans la corbeille sur le site Web OneDrive).

5. (Facultatif) Options de configuration.

Si vous souhaitez utiliser un emplacement de dossier OneDrive personnalisé, modifier l'intervalle de surveillance des fichiers modifiés, etc., vous pouvez utiliser le fichier de configuration OneDrive Free Client.

Pour Debian, Ubuntu et Derivatives, voir /usr/share/doc/onedrive/config pour un exemple de configuration . Une autre distribution Linux, ou si vous ne trouvez pas ce fichier de configuration, vous pouvez l'obtenir à partir de la page du projet OneDrive Free Client GitHub - voici un lien direct.

Pour modifier la configuration par défaut du client gratuit OneDrive pour Linux pour votre utilisateur, copiez ce fichier de configuration dans ~/.config/onedrive . Par exemple sur Debian/Ubuntu et d'autres distributions Linux où ce fichier est installé sous /usr/share/doc/onedrive/config , copiez-le dans ~/.config/onedrive Utilisation :

cp /usr/share/doc/onedrive/config ~/.config/onedrive/

Maintenant, pour modifier certaines options du client gratuit OneDrive, ouvrez le ~/.config/onedrive/config fichier avec un éditeur de texte. Toutes les options y sont commentées (elles ont # devant eux); Pour modifier l'une des valeurs par défaut, décommentez la ligne et définissez la valeur sur la valeur souhaitée.

Les options du fichier de configuration devraient être explicites dans la plupart des cas. Pour obtenir de l'aide, consultez la page de manuel onedrive (man onedrive ).

Pour plus d'informations sur l'utilisation du client gratuit OneDrive sous Linux, y compris son utilisation avec plusieurs comptes OneDrive, l'activation de la prise en charge du proxy pour le service systemd OneDrive, etc., consultez la documentation sur l'utilisation du client gratuit OneDrive.


Debian
  1. Comment installer macOS sur une machine virtuelle Linux à l'aide de Sosumi (paquet Snap)

  2. Comment installer Dropbox sur Debian 9 Stretch Desktop à partir du référentiel officiel

  3. Fond de flux vidéo en direct pour votre GNOME, Xfce ou par ex. bureau

  4. Comment installer GitLab sur Debian 9

  5. Comment installer le lecteur de film Popcorn Time sur Debian 9 Stretch Linux

Installation et configuration de PSAD sur Debian 8 (Jessie)

Comment afficher la table de routage réseau dans Ubuntu

Utilisation des commandes apt-get sous Linux [Guide complet du débutant]

Comment compresser un fichier sous Linux avec des exemples simples {ubuntu 20.04}

navigateur chrome :commande introuvable

Une liste de contrôle pour soumettre votre premier correctif de noyau Linux