varias una salto lista lineas linea for ejemplo descargar archivos agregar python ftp ftp-server

lineas - salto de linea en una lista python



Servidor ftp de una lĂ­nea en python (9)

¿Es posible tener un comando de una línea en python para hacer un servidor ftp simple? Me gustaría poder hacer esto de forma rápida y temporal para transferir archivos a un cuadro de Linux sin tener que instalar un servidor ftp. Preferentemente, una forma de usar las bibliotecas creadas en python para que no haya nada más que instalar.


¿Por qué no utilizas un servidor HTTP de una sola línea?

python -m SimpleHTTPServer 8000

servirá los contenidos del directorio de trabajo actual sobre HTTP en el puerto 8000.

Si usa Python 3, debería escribir

python3 -m http.server 8000

Consulte los documentos del módulo SimpleHTTPServer para 2.x y los documentos http.server para 3.x.

Por cierto, en ambos casos, el parámetro de puerto es opcional.



Echa un vistazo a pyftpdlib de Giampaolo Rodola. Es uno de los mejores servidores ftp para python. Se usa en el cromo de Google (su navegador) y en el bazar (un sistema de control de versiones). Es la implementación más completa en Python para RFC-959 (también conocido como: especificación de implementación del servidor FTP).

Desde la línea de comando:

python -m pyftpdlib

Alternativamente ''my_server.py'':

#!/usr/bin/env python from pyftpdlib import servers from pyftpdlib.handlers import FTPHandler address = ("0.0.0.0", 21) # listen on every IP on my machine on port 21 server = servers.FTPServer(address, FTPHandler) server.serve_forever()

Hay más ejemplos en el sitio web si desea algo más complicado.

Para obtener una lista de opciones de línea de comando:

python -m pyftpdlib --help

Tenga en cuenta que si desea anular o utilizar un puerto ftp estándar, necesitará privilegios de administrador (por ejemplo, sudo).


Instalar:

pip install twisted

Entonces el código:

from twisted.protocols.ftp import FTPFactory, FTPRealm from twisted.cred.portal import Portal from twisted.cred.checkers import AllowAnonymousAccess, FilePasswordDB from twisted.internet import reactor reactor.listenTCP(21, FTPFactory(Portal(FTPRealm(''./''), [AllowAnonymousAccess()]))) reactor.run()

Profundiza:

http://twistedmatrix.com/documents/current/core/examples/


La solución más simple será usar la biblioteca de pyftpd. Esta biblioteca le permite girar el servidor FTP de Python en una línea. No viene instalado por defecto, pero podemos instalarlo usando el comando apt simple

apt-get install python-pyftpdlib

ahora desde el directorio que desea servir simplemente ejecute el módulo pythod

python -m pyftpdlib -p 21


Las respuestas anteriores suponían que su distribución de Python tendría algunas bibliotecas de terceros para lograr el objetivo "one liner python ftpd", pero ese no es el caso de lo que @zio estaba pidiendo. Además, SimpleHTTPServer implica una herramienta web para descargar archivos, no es lo suficientemente rápido.

Python no puede hacer ftpd por sí mismo, pero puede usar netcat , nc :

nc es básicamente una herramienta incorporada de cualquier sistema tipo UNIX (incluso sistemas integrados), por lo que es perfecto para " una forma rápida y temporal de transferir archivos ".

Paso 1, en el lado del receptor, ejecute:

nc -l 12345 | tar -xf -

esto escuchará en el puerto 12345, esperando datos.

Paso 2, en el lado del remitente:

tar -cf - ALL_FILES_YOU_WANT_TO_SEND ... | nc $RECEIVER_IP 12345

También puede poner a pv en el medio para monitorear el progreso de la transferencia:

tar -cf - ALL_FILES_YOU_WANT_TO_SEND ...| pv | nc $RECEIVER_IP 12345

Una vez finalizada la transferencia, ambos lados de nc se cerrarán automáticamente y se completará el trabajo.


No sé sobre un servidor FTP de una línea, pero si lo haces

python -m SimpleHTTPServer

Ejecutará un servidor HTTP en 0.0.0.0:8000, que sirve archivos del directorio actual. Si está buscando una forma de obtener rápidamente archivos de un linux box con un navegador web, no puede superarlo.


Obligatorio Twisted ejemplo:

twistd -n ftp

Y probablemente sea útil:

twistd ftp --help Usage: twistd [options] ftp [options]. WARNING: This FTP server is probably INSECURE do not use it. Options: -p, --port= set the port number [default: 2121] -r, --root= define the root of the ftp-site. [default: /usr/local/ftp] --userAnonymous= Name of the anonymous user. [default: anonymous] --password-file= username:password-style credentials database --version --help Display this help and exit.


Para usuarios de pyftpdlib. Encontré esto en el sitio web de pyftpdlib. Esto crea un ftp anónimo con acceso de escritura a su sistema de archivos, por lo que debe usarlo con sumo cuidado. Hay más funciones disponibles debajo del capó para mayor seguridad, así que solo tiene que mirar:

sudo pip install pyftpdlib python -m pyftpdlib -w

Podría ser útil para aquellos que intentaron usar el método obsoleto anterior.

sudo python -m pyftpdlib.ftpserver