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í.
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:
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.
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:
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.
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?
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.
A mí ahora mismo no llega a 20MB de consumo el MegaSync
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.
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
Para nada, gracias a tí por leernos 🙂
>> 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!
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.
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