Transferencia facil de ficheros y mini-servidor web para apuros
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
Contenido
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
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"
"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
--miguelbf 00:01 10 abr 2009 (UTC)