Synchronisation MEGA en ligne de commande sous linux

Bien qu’intéressant, cet article est dorénavant obsolète car MEGA dispose maintenant d’un logiciel de synchronisation sous linux téléchargeable ici : https://mega.co.nz/linux/MEGAsync/

Si vous avec un compte chez MEGA https://mega.co.nz/ vous devez avoir l’envie de synchroniser vos données avec celles de cet hébergement de 50 Go … difficile sous linux me direz-vous ? Eh bien pas tant que ça ! Vous pouvez le faire pour l’instant en ligne de commande avec le logiciel megacmd. Voila la démarche à suivre :

aptitude install golang-go git

Télécharger les sources de megacmd : https://github.com/t3rm1n4l/megacmd/archive/master.zip
Puis extraire l’archive et ouvrir un terminal dans le répertoire obtenu (megacmd-master) et copier le binaire obtenu dans /usr/local/bin/ :

cd megacmd-master
mkdir $HOME/go
export GOPATH="$HOME/go/"
make
cp megacmd /usr/local/bin

Créer un fichier de configuration nommé .megacmd.json dans votre home et le renseigner avec votre nom d’utilisateur et votre mot de passe MEGA :

nano $HOME/.megacmd.json
{
"User" : "nom_utilisateur",
"Password" : "mdp",
"DownloadWorkers" : 4,
"UploadWorkers" : 4,
"SkipSameSize" : true,
"Verbose" : 1
}

Utilisation

Liste des fichiers et répertoires visibles à la racine :

megacmd list mega:/

Téléchargement de  l’archive mon_archive.zip sur le bureau

megacmd get mega:/mon_archive.zip /home/biotux/Bureau/

Téléchargement (upload) du fichier text.txt à la racine de votre compte MEGA

megacmd put /home/biotux/Bureau/test.txt mega:/

Efface le fichier test.txt de votre compte MEGA

megacmd delete mega:/test.txt

Création du dossier mon_dossier sur votre compte MEGA

megacmd mkdir mega:/mon_dossier

Synchronisation du répertoire rep_ordi avec le dossier mon_dossier de mon compte MEGA

megacmd -force sync /home/biotux/rep_ordi/ mega:/mon_dossier

L’option -force permet de forcer la mise à jour d’un fichier modifié sur votre ordinateur vers votre compte MEGA.

Si vous souhaitez synchroniser une fois par jour ce dossier présent sur MEGA avec celui de votre oridinateur, il suffit de faire :

crontab -e

et d’ajouter cette ligne à votre crontab :

@reboot sleep 60 && /usr/local/bin/megacmd -force sync /home/biotux/rep_ordi/ mega:/mon_dossier/

A chaque démarrage + 1 minute (temps qui peut être nécessaire à l’établissement de votre connexion internet), votre ordinateur commencera la synchronisation … s’il y a besoin !

Attention néanmoins, megacmd-master n’efface pas les fichiers lors d’une synchronisation.

Et voila … ce n’est pas plus compliqué que ça.

Si vous souhaitez un petit rappel de toutes ces commandes :

megacmd

 

 

 

 

 

Comments

  1. Hello,
    Je suis sur Debian et j’ai tenté de faire un make mais ca ne marche pas.
    J’ai installé make, golang-go et git mais rien n’y fait.
    J’ai l’erreur suivante :
    # make
    go get github.com/t3rm1n4l/go-mega
    # github.com/t3rm1n4l/go-mega
    /root/go/src/github.com/t3rm1n4l/go-mega/utils.go:54: buf.Grow undefined (type *bytes.Buffer has no field or method Grow)
    make: *** [build] Erreur 2

    Je ne m’y connais pas assez pour comprendre l’erreur.
    Si tu as une idée …

    Merci d’avance.

    1. Bonjour,

      Il semble que golang-go soit dans une version trop ancienne dans ta distribution.
      Il faut la désinstaller puis réinstaller une nouvelle version :

      apt-get remove --purge golang-go
      wget https://storage.googleapis.com/golang/go1.3.1.linux-amd64.tar.gz
      tar -C /usr/local -xzf go1.3.1.linux-amd64.tar.gz
      export PATH=$PATH:/usr/local/go/bin
      make

      Ça devrait ensuite marcher

  2. Salut,

    Moi j’ai cette erreur en faisant make :
    ~/megacmd-master# make
    go get github.com/t3rm1n4l/go-mega
    package bytes: unrecognized import path « bytes »
    package crypto/aes: unrecognized import path « crypto/aes »
    package crypto/cipher: unrecognized import path « crypto/cipher »
    package crypto/rand: unrecognized import path « crypto/rand »
    package encoding/base64: unrecognized import path « encoding/base64 »
    package encoding/binary: unrecognized import path « encoding/binary »
    package encoding/json: unrecognized import path « encoding/json »
    package errors: unrecognized import path « errors »
    package fmt: unrecognized import path « fmt »
    package io/ioutil: unrecognized import path « io/ioutil »
    package math/big: unrecognized import path « math/big »
    package math/rand: unrecognized import path « math/rand »
    package net: unrecognized import path « net »
    package net/http: unrecognized import path « net/http »
    package os: unrecognized import path « os »
    package path/filepath: unrecognized import path « path/filepath »
    package runtime: unrecognized import path « runtime »
    package sort: unrecognized import path « sort »
    package strings: unrecognized import path « strings »
    package sync: unrecognized import path « sync »
    package time: unrecognized import path « time »
    make: *** [build] Error 1

    Je dois faire quoi ?

    Merci d’avancce

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Etes-vous humain ? * Time limit is exhausted. Please reload CAPTCHA.