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 , , , , | 1 Comments »

1 comentarios:

Eduardo dijo... @ 11:31 a. m.

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.