Python :: Subir Ficheros a FTP
Hola,
Después de tantos meses, publico un pequeño script que me es muy útil: Sube automáticamente los ficheros modificados al FTP que le especifiquéis. Que conste que soy un novato en Python! Ahí va:
--------------------------------------------------------
#!/usr/bin/env python
# coding: iso-8859-15
import os
import sys
import ftplib
# Configuración
project_path = "/path/to/project"
ftp_project_path = "/public_html"
ftpsite = "ftp.site.com"
ftpusr = "ftpuser"
ftppass = "ftppassword"
mnmin = 120
file_types = "[php|htm|html|js]"
# Funciones
def upload(conn, fname):
global ftp_project_path, project_path, path_len
dir_len = len(fname)
file2stor = fname[path_len:]
(dir, tail) = os.path.split(file2stor)
dir2stor = ftp_project_path+dir
command = "STOR " + tail
conn.cwd(dir2stor)
print "Almacenando en: "+dir2stor
fd = open(fname, 'rb')
temp = fd.read(2048)
fd.seek(0, 0)
if temp.find('\0') != -1:
conn.storbinary(command, fd)
else:
conn.storlines(command, fd)
fd.close()
def connect(site,usr,pwd):
conn = ftplib.FTP(site)
conn.login(user=usr, passwd=pwd)
return conn
# Inicio del script
conn = connect(ftpsite,ftpusr,ftppass)
path_len = len(project_path)
for file in os.popen("/usr/bin/find "+project_path+" -type f -regex '.*."+file_types+"' -mmin -"+str(mnmin)).readlines():
file = file.strip()
print "Subiendo online el fichero ["+file+"]"
upload(conn,file)
--------------------------------------------------------
Espero que os sea útil. Básicamente sube al directorio del FTP que le especifiquéis los ficheros modificados con la extensión file_types en las últimas 2 horas.
A10!
PD: Tener en cuenta que python utiliza la identación para englobar las funciones, bucles, condicionales, etc... y que el blogger este se come las tabulaciones!
Posted on 12:15 a. m. by skarvin and filed under
desarrollo web,
ftp,
gnu,
linux,
python
| 1 Comments »
Después de tantos meses, publico un pequeño script que me es muy útil: Sube automáticamente los ficheros modificados al FTP que le especifiquéis. Que conste que soy un novato en Python! Ahí va:
--------------------------------------------------------
#!/usr/bin/env python
# coding: iso-8859-15
import os
import sys
import ftplib
# Configuración
project_path = "/path/to/project"
ftp_project_path = "/public_html"
ftpsite = "ftp.site.com"
ftpusr = "ftpuser"
ftppass = "ftppassword"
mnmin = 120
file_types = "[php|htm|html|js]"
# Funciones
def upload(conn, fname):
global ftp_project_path, project_path, path_len
dir_len = len(fname)
file2stor = fname[path_len:]
(dir, tail) = os.path.split(file2stor)
dir2stor = ftp_project_path+dir
command = "STOR " + tail
conn.cwd(dir2stor)
print "Almacenando en: "+dir2stor
fd = open(fname, 'rb')
temp = fd.read(2048)
fd.seek(0, 0)
if temp.find('\0') != -1:
conn.storbinary(command, fd)
else:
conn.storlines(command, fd)
fd.close()
def connect(site,usr,pwd):
conn = ftplib.FTP(site)
conn.login(user=usr, passwd=pwd)
return conn
# Inicio del script
conn = connect(ftpsite,ftpusr,ftppass)
path_len = len(project_path)
for file in os.popen("/usr/bin/find "+project_path+" -type f -regex '.*."+file_types+"' -mmin -"+str(mnmin)).readlines():
file = file.strip()
print "Subiendo online el fichero ["+file+"]"
upload(conn,file)
--------------------------------------------------------
Espero que os sea útil. Básicamente sube al directorio del FTP que le especifiquéis los ficheros modificados con la extensión file_types en las últimas 2 horas.
A10!
PD: Tener en cuenta que python utiliza la identación para englobar las funciones, bucles, condicionales, etc... y que el blogger este se come las tabulaciones!
1 comentarios:
Gracias por el script, estaba buscando algo para comenzar a desarrollar un script que simule el comportamiento de dreamweaver a la hora de subir ficheros y bloquearlos, con tu script ya tengo la manera de comenzar.
Se agradece.
Eduardo.
Publicar un comentario