MegaTools : Mega en CLI (+script upload & lien/clé par email)

cli 13 mai 2016

Il arrive de temps en temps qu’on me demande si je n’ai pas tel ou tel fichier sur un de mes serveurs. N’étant pas (enfin pas tout le temps) un chacal j’ai du coup parfois à transmettre le dit fichier à quelqu’un.

Et là je me heurte à ZE question : “Comment tu me le passes ?”. Parce que personnellement en dehors de SCP/rsync/sFTP (sortants) j’ai pas grand chose. Et je ne fais pas d’accès entrant sur mes machines pour ce genre de “service”. N’étant pas non plus adepte de l’upload en BitTorrent il reste au final le DDL que je maîtrise très mal.

Et c’est là qu’entrent en jeu MegaTools : MEGA en lignes de commandes. Et qui se script aussi du coup.

 

Installation

Le GitHub indique comment l’installer sur la plupart des distributions Linux ainsi qu’OSX (et Windows semble-t-il). Voici pour Arch.

Par exemple pour Debian

Installation on Debian
======================

Megatools is available in sid thanks to Alberto Garcia:

  https://packages.debian.org/unstable/megatools

Il faut donc ajouter les sources “SID” (unstable) de Debian

sudo nano /etc/apt/sources.list

Et mettre à la fin

deb http://ftp.us.debian.org/debian unstable main contrib non-free

Puis mettre à jour et installer le package

sudo apt-get update
sudo apt-get install megatools

 

Utilisation

Je vous laisse lire le GitHub mais aussi et surtout le MAN détaillant l’ensemble des commandes et pourvu d’exemples simples. Sinon passez au script en-dessous :)

 

Script : uploader tel fichier sur MEGA et envoyer le lien de DL (+clé) par email

J’utilise MEGA tous les 36 du mois et il m’arrive du coup d’oublier des commandes. Pour palier à ce problème mais aussi gagner du temps, c’est pour dépanner quelqu’un après tout, je me suis fait un petit script qui fonctionne de la sorte :

bash mega.sh fichier email : il va poster sur mon compte MEGA le fichier en question et envoyer le lien de DL et la clé de déchiffrement à l’email indiqué.

Et l’email ressemblera à ceci (épuré mais efficace)

megaEt le script. Comme à mon habitude il est commenté (voire sur-commenté) je fais donc l’impasse sur les explications.

#!/bin/bash
# Nom du script .. : mega.sh
# Date ........... : 05.2016
# Auteur ......... : Aerya | https://upandclear.org
# Description .... : Up to MEGA and email link+key
# Prerequis ...... : MegaTools | https://github.com/megous/megatools
# Execution ...... : "bash mega.sh fichier email"
# Specificites ... : Si vous voulez toujours envoyer le lien de DL sur le même email 
# => Remplir la variable EMAIL=''
# => Ligne 4 du script, remplacez "$2" par "EMAIL"

# Variables ...... : A definir ici et ne pas modifier la suite du script
# MEGA_USER ...... : Compte de connexion MEGA (email)
# MEGA_PWD ....... : Mot de passe du compte de connexion MEGA
# EMAIL .......... : Ne remplir que si vous voulez toujours envoyer au même destinataire

MEGA_USER=''
MEGA_PWD=''
EMAIL=''

# Script ......... : NE PAS MODIFIER
# 1 .............. : Creation sur MEGA d'un dossier du meme nom
# 2 .............. : Upload sur MEGA dans le dossier cree
# 3 .............. : Recuperation du lien de DL (contenant la cle de chiffrement)
# 4 .............. : Envoi du lien de DL par email

megamkdir -u "$MEGA_USER" -p "$MEGA_PWD" /Root/"$1" 
megaput -u "$MEGA_USER" -p "$MEGA_PWD" --path /Root/"$1" "$1"
LOG=`megals -u "$MEGA_USER" -p "$MEGA_PWD" -e /Root/"$1"/"$1"`
echo "$LOG" | mail -s "$1 est sur MEGA" "$2"

Script à enregistrer sur votre serveur sous le nom que vous voulez, dans mon cas c’est mega.sh. Peut sans aucun doute être amélioré, simplifié, complexifié. Et pour que votre machine puisse envoyer l’email vous pouvez vous aider de ce tutoriel.

 

Mots clés