COMPARTIR ARCHIVOS BAJO “GNU/LINUX” MEDIANTE “HTTP”

python_sh-600x600Compartir ficheros bajo GNU/Linux

Normalmente para compartir archivos en sistemas GNU/Linux necesitamos de la instalación de un servidor SAMBA “Implementación del protocolo SMB/CIFS de MS Windows” (si nos encontramos en un entorno de trabajo bajo redes heterogéneas, es decir con equipos usando GNU/Linux y MS Windows) ó el uso de un servidor NFS “Network File System” (originalmente desarrollado por Sun Microsystems).

La implementación de alguno de estos servidores conlleva tiempo y configuraciones que pueden ser algo complejas dependiendo del entorno de trabajo. Si nuestro objetivo es compartir temporalmente ficheros en nuestra red de una forma mucho mas rápida y sencilla, las alternativas anteriormente mencionadas no son la solución a nuestro problema. Es aquí donde entra en juego “Python” y su módulo “SimpleHTTPServer”.

 

¿Qué es Python?

Python es un lenguaje de programación extremadamente potente y sus módulos nos pueden hacer la vida muy fácil en determinadas situaciones. En este caso podemos levantar un servidor web sin ningún tipo de instalación ni configuración, únicamente ejecutando un solo comando desde BASH dentro del directorio que queramos compartir.

Os dejo el enlace a la descripción del modulo en la web de Python (versión 2.7):

https://docs.python.org/2.7/library/simplehttpserver.html#module-SimpleHTTPServer

NOTA: La documentación varia según la versión de Python que escogas. Podéis ver vuestra versión de Python ejecutando desde una SHELL:

$ python –V

En mi caso es la 2.7.3 en mi máquina Ubuntu, también podéis ejecutar

$ python -m “nombredelmódulo”, para probar cualquier módulo que tengáis desarrollado. En nuestro caso usaremos uno de los módulos por defecto “SimpleHTTPServer”. Mencionar que para la versión 3 de Python el nombre del módulo cambia a “http.server”, por lo demás todo es exactamente igual.

Python suele venir instalado en la mayoría de sistemas GNU/Linux, pero si no es el caso, para instalarlo solo tendréis que hacer uso del gestor de paquetes de vuestra distribución (apt-get, dnf, yum, zypper, yast, brew, etc…)

 

Compartir archivos con SimpleHTTPServer de Python

Como ya hemos citado más arriba para compartir ficheros a través de este módulo solo tenemos que ir al directorio donde tenemos los archivos y ejecutar el comando en cuestión. Para acceder al recurso compartido el usuario solo tendrá que poner la IP de nuestra máquina seguida del puerto por defecto 8000 de “SimpleHTTPServer” en la barra de direcciones del navegador.

$ cd /home/vagrant/compartido

$ python -m SimpleHTTPServer

HTTPSERVER

Para verificar que el servidor ha iniciado bien ejecutamos:

$ netstat –putan | grep 8000

netstat_ubuntu

Para acceder desde nuestra propia máquina:

http://localhost:8000

Para el acceso de un usuario desde otra maquina (en mi caso la dirección IP del Pc corriendo Ubuntu es 192.168.1.224):

http://192.168.1.224:8000

Captura de pantalla 2015-12-23 a las 12.36.23

Para dejar de compartir el recurso solo tenemos que ejecutar en la SHELL las teclas CTRL+C.

Saludos cordiales.

 

 

Deja un comentario