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 :

[pastacode provider= »manual » lang= »bash »]

aptitude install golang-go git

[/pastacode]

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/ :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

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

[/pastacode]

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 :

[pastacode provider= »manual » lang= »bash »]

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

[/pastacode]

Utilisation

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

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

megacmd list mega:/

[/pastacode]

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

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

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

[/pastacode]

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

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

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

[/pastacode]

Efface le fichier test.txt de votre compte MEGA

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

megacmd delete mega:/test.txt

[/pastacode]

Création du dossier mon_dossier sur votre compte MEGA

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

megacmd mkdir mega:/mon_dossier

[/pastacode]

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

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

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

[/pastacode]

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 :

[pastacode provider= »manual » lang= »bash »]

crontab -e

[/pastacode]

et d’ajouter cette ligne à votre crontab :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

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

[/pastacode]

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 :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

megacmd

[/pastacode]

 

 

 

 

 

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