Transferencia facil de ficheros y mini-servidor web para apuros

De GALPon WiKi
Saltar a: navegación, buscar

Esto no es propiamente un COMO tal y como yo lo entiendo, realmente son unas notas para poder aplicarlo despues a la MiniNo.

Como siempre, esto está bajo licencia CC by-sa

Transferencia de archivos fácil

Si teneis dos máquinas conectadas a una red, y no está instalado/configurado Samba, ni SSH, ni NFS… ¿cómo transferimos un archivo? Bueno, una solución es usar netcat.

Ejecutamos esto en la máquina que lo va a recibir:

$ nc -l -p 8080 > archivo.tar.bz2

Y esto en la máquina que lo va a enviar:

$ nc ipDestino 8080 < archivo.tar.bz2

Por supuesto, no hay barras de progreso ni nada. Hay que ir viendo con un ls -l el tamaño del archivo en la máquina destino. Cuando éste deja de crecer, entonces la transferencia ha finalizado

Nota: En ficheros grandes o de dificil comprobación es recomendable hacer un md5sum para compararlo y verificar la transferencia.

Generando un mini servidor temporal de muy bajos recursos

Con esta solución (la solución del vago) habrá quien nos envíe y quien nos "robe" ficheros, todo el trabajo lo hacen los demás.

Ellos solo necesitan un navegador y acceder a:

http://nuestra_IP:8000

Para quien esté perdido y no sepa cual es su ip

8000 es el puerto predeterminado

Para recibir ficheros

http://stackp.online.fr/?p=28

creamos el directorio ~/droopy

descargar "droopy" y colocarlo dentro de ~/droopy

dentro de ~/droopy creamos "recibidos"

ejecutar

python ~/droopy/droopy -m "Como bos amiguiños, enviame ese ficheiro." -d ~/droopy/recibidos 8080

ó

python ~/droopy/droopy -m "<center><b>Como bos amiguiños, enviame ese ficheiro.</b></center>" -p ~/amiguitos.png -d ~/droopy/recibidos --save-config

notas:

  • -m "MENSAJE"
  • <center></center> etiquetas de apertura y cierre para centrar texto
  • <b></b> etiquetas de apertura y cierre para poner texto en negrita
  • -p IMAGEN/PICTURE
  • -d DIRECTORIO
  • 8080 Puerto (a nuestra elección) si omitimos definirlo toma como predeterminado el 8000
  • --save-config guarda la configuración

Toda esta configuración queda guardada en el fichero ~/.droopy gracias a la opción --save-config

--message=<center><b>Como bos amiguiños, enviame ese ficheiro.</b></center>
--picture=/home/miguel/amiguitos.png
--directory=/home/miguel/droopy/recibidos
8000

Por lo que en lo sucesivo solo hará falta ejecutar:

python ~/droopy/droopy

para romper la conexión

exit

o "Ctrl+C"

Para ceder ficheros

http://tips4linux.com/quick-and-easy-sharing-of-a-directory-over-http-in-linux/

dentro de ~/droopy creamos "cedidos"

definir (en terminal) el alias:

alias webshare="python -c 'import SimpleHTTPServer;SimpleHTTPServer.test()'"

y ejecutar:

cd ~/droopy/cedidos && webshare

para romper la conexión "exit" o "Ctrl+C"

enviando puertos 8000 y 8080 a la máquina miniservidor

"Natear" el router

Logicamente, si estamos tras un router, para que puedan acceder desde el exterior (internet) tendremos que redireccionar en el router el puerto que hayamos indicado hacia nuestra máquina.




Resumen

Se puede resumir todo colocando "droopy" en ~/.bin/droopy y creando una carpeta que llamaremos "compartida"

para recibir ejecutamos (la primera vez):

python ~/.bin/droopy -m "Como bos amiguiños, enviame ese ficheiro." -p ~/amiguitos.png -d ~/droopy/compartida [--save-config]

si guardamos la configuración, las sucesivas:

python ~/.bin/droopy

para ceder, creamos el alias y ejecutamos:

alias webshare="python -c 'import SimpleHTTPServer;SimpleHTTPServer.test()'" && cd ~/compartida && webshare

Con esto último podemos hacer un script en bash

#!/bin/sh
alias webshare="python -c 'import SimpleHTTPServer;SimpleHTTPServer.test()'"
cd ~/compartida
webshare

al que llamaremos "cede" (original que es uno) y que alojamos en ~/ (ó en ~/.bin/ al ladito de droopy si hacemos el path) y que ejecutaremos con:

~/cede

ya puestos generamos un fichero "recibe" con la orden de droopy

#!/bin/sh
python ~/.bin/droopy

que lanzaremos con:

~/recibe

Como último detalle si definimos (por ejemplo) droopy sobre el puerto 8080 y webshare sobre el 8000 podemos disponer de recepción y envío simultaneamente accediendo a dos páginas en el navegador:

http://nuestra_IP:8000
http://nuestra_IP:8080

acordarse de darle permisos de ejecución a ambos

vista de groopy del lado del cliente











--miguelbf 00:01 10 abr 2009 (UTC)