Mega desde la terminal con MegaCMD

Creo que no necesito explicar qué es Mega o el difunto Megaupload (uff que tiempos aquellos…). Actualmente somos muchos los que usamos Mega como almacenamiento para backups de nuestro sistema, o bueno, información de cualquier tipo.

Hoy en día hay aplicaciones gráficas para todo, pero los que usamos Linux siempre, por curiosidad o ahorro de tiempo deseamos conocer cómo lograr lo mismo con la terminal. Un ejemplo de esto es Yowsup, para usar WhatsApp por la terminal, lo cual nos ahorra usar Wine y luego descargar WhatsApp Plus gratis, usar WhatsApp con Pidgin. o algo similar.

El asunto es que pienso usar una carpeta en mi cuenta Mega para almacenar backups de servidores, los cuales obviamente no tienen interfaz gráfica, por lo que… mmm … ¿cómo mediante un script bash, subir archivos a una carpeta específica de mi cuenta Mega?, esa es la pregunta aquí.

mega-browser

MegaCMD: Mega desde Terminal

Afortunadamente existe megacmd, una aplicación mediante la cual (y con comandos) podemos subir archivos hacia nuestra Mega, bajar, etc.

Procedamos a instalarlo:

1. Primero debemos descargar el fuente:

Descarga fuente de MegaCMD

2. Descomprimimos el archivo megacmd-master.zip que fue lo que bajamos, se nos creará una carpeta llamada megacmd-master, vamos a abrir una terminal dentro de esa carpeta.

3. Ahora pasamos a instalarlo, en la terminal escribimos lo siguiente:

make
sudo cp megacmd /usr/local/bin

3.1. Claro, si usas ArchLinux es tan simple como:

yaourt -S megacmd

4. Listo, ya está instalado.

¿Y cómo se usa MegaCMD?

Primero debemos crear un archivo en el cual pondremos información de nuestra cuenta. O sea, la aplicación no puede conectarse a nuestra cuenta sin tener los datos de acceso (usuario y password), para ello crearemos el archivo: $HOME/.megacmd.json

nano $HOME/.megacmd.json

Ahí pondremos algo como esto:

{
"User" : "USUARIO_MEGA",
"Password" : "PASSWORD_DE_USUARIO_MEGA",
"DownloadWorkers" : 4,
"UploadWorkers" : 4,
"SkipSameSize" : true,
"Verbose" : 1
}

Tener en cuenta que el usuario es el email de registro, o sea en mi caso sería:

{
"User" : "miusuarioblabla@gmail.com",
"Password" : "BLABLABLABLABLABLA",
"DownloadWorkers" : 4,
"UploadWorkers" : 4,
"SkipSameSize" : true,
"Verbose" : 1
}

Cuando ya hayamos puesto la información, presionamos guardamos ([Ctrl] + [O]) y salimos ([Ctrl] + [X])

Listo ahora veremos el contenido de nuestra carpeta inicial:

megacmd list mega:/

Eso a mí me indica que existe una carpeta llamada MEGAsync, que es la que muestro en la primera imagen.

Si deseo ver qué hay dentro de una carpeta, la variación de la línea anterior es simple, casi que evidente, como la carpeta es MEGAsync :

megacmd list mega:/MEGAsync/

Para descargar un archivo en vez el parámetro list que usamos antes, ahora usaremos get:

megacmd get mega:/MEGAsync/instantánea1.png /home/miusuario/

Eso descargará el archivo instantáneo1.png, ubicado dentro de la carpeta MEGAsync hacia mi Home.

mega-examples

En caso contrario, y que se desee subir un archivo entonces en vez de get usamos put:

megacmd put archivo.zip mega:/MEGAsync/

Para borrar un archivo sería con delete:

megacmd delete mega:/MEGAsync/instantánea1.png

Pero aquí no termina la cosa … si desean crear un nuevo directorio, entonces:

megacmd mkdir mega:/Backups

¿Más características de MegaCMD?

Sí 😀

Aún se puede hacer más, como sincronizar carpetas como mismo hacemos con rsync, para eso se usa el parámetro sync, también podemos con move mover archivos de una carpeta a otra, aquí les dejo las opciones que nos brinda la aplicación:

mega-options

Fin!

Le acabo de comentar a elav que está muy buena esta aplicación, a lo cual él me responde: «teniendo el cliente desktop para qué usarla«, cierto, cuando se tiene MegaSync entonces MegaCMD pierde un poco de sentido, pero, ¿y si estamos en un ordenador sin entorno gráfico?.

Pienso usar MegaCMD para backups de un servidor, el cual como ya dije al inicio, no tiene GUI.

También se podría usar para mediante un script hacer infinidad de cosas, todo queda en qué necesite el usuario y su imaginación.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Eduardo dijo

    Me ha llamado la atención tu post por una razón muy específica, Megasync llega a consumir alrededor de 360MB de memoria, ¿MegaCMD consume menos?

    1.    eVeR dijo

      A mi MegaSync en idle me consume entre 10 y 40 MB. Quizá por que uso KDE y con eso me ahorro cargar las QT para ejcutarlo. Pero 400 MB como que igual es demasiado, a menos que use esa cantidad de memoria temporalmente mientas sube algún archivo pesado.

      1.    KZKG^Gaara dijo

        A mí ahora mismo no llega a 20MB de consumo el MegaSync

    2.    KZKG^Gaara dijo

      MegaCMD consume mucho menos que MegaSync… y ni siquiera sé cuánto consume este 2do jeje. Ten en cuenta que MegaCMD es script sin GUI, o sea, cero interfaz gráfica, por lo que el consumo siempre será inferior.

      1.    Eduardo dijo

        Gracias por responder, desde un inicio me pareció muy raro ese alto consumo, aprovechando que acabo de hacer una instalación de Xubuntu probaré de nuevo Megasync pero también MegaCMD, lo de que este último no requiera interfaz gráfica ya es una ventaja

        1.    KZKG^Gaara dijo

          Para nada, gracias a tí por leernos 🙂

  2.   dhunter dijo

    >> a lo cual él me responde: “teniendo el cliente desktop para qué usarla“

    Pues yo le explico a Elav un caso de uso que me viene de perlas.

    Digamos que estoy en una pc roaming y tengo una cnx super lenta, pero mi server remoto tiene buen bandwith, quiero descargar algo grande de mega pero no voy a abrir un browser ni ejecutar MegaSync con X forwarding , y aquí entra MegaCmd: obtengo las url en mi browser local desde mi cnx lenta y ejecuto las descargas desde el server con red buena. Eureka!

  3.   Luis dijo

    Hola. Al hacer «make» obtengo este error:

    go get github.com/t3rm1n4l/go-mega

    github.com/t3rm1n4l/go-mega

    .gopath/src/github.com/t3rm1n4l/go-mega/utils.go:54: buf.Grow undefined (type *bytes.Buffer has no field or method Grow)
    Makefile:14: recipe for target ‘build’ failed
    make: *** [build] Error 2

    ¿Tienes idea de dónde puede estar el problema?
    Muchas gracias.

    1.    Gonzalo Montes de Oca dijo

      Si usas alguna distribución Debian debes instalar las siguientes dependencias antes de ejecutar el comando make:

      aptitude install golang-go git

      con eso te genera el archivo ejecutable megacmd el cual debes copiar a /usr/local/bin