Ir al contenido principal

Enviar archivos por sftp con Python

Esta es una breve modificaci贸n a uno de los scripts creados con anterioridad y que consiste en enviar un archivo por  sftp.   La necesidad en concreto consist铆a en comparar ambos servidores local y remoto y validar qu茅 archivo faltaba en el remoto que estuviera en el local para proceder a enviarlo y mantener el remoto actualizado.

Este script se guarda con el nombre que quieras, le das permiso de ejecuci贸n y lo agregas en un crontab.

  
    
import pysftp
import os

# Cambiar por la ruta donde se generan los archivos (Amsterdam)
servidor_local = os.listdir(r'C:\proyecto\archivos') 

#print servidor_local

# Cambiar por una ruta en Amsterdam, puede ser /tmp/res
os.remove(r"c:\proyecto\res\archivos.txt") 

for archivos in servidor_local:
    # Cambiar por '/tmp/res/archivos.txt','a'
    local = open(r"c:\proyecto\res\archivos.txt",'a') 
    print 'Archivo local: '+archivos
    local.write(str(archivos)+'\n')
    local.close()

# Cambiar por /tmp/res/remoto.txt
os.remove(r"c:\proyecto\res\remoto.txt") 
with pysftp.Connection('servidor_remoto.com', username='usuario', password='clave') as sftp:
    # Cambiar por la ruta donde quedan los archivos en el servidor remoto
    with sftp.cd('/tmp'): 
        f = sftp.listdir()
        for files in f:
            # '/tmp/res/remoto','a'
            remoto = open(r"c:\proyecto\res\remoto.txt",'a') 
            print 'Archivos remotos: '+str(f)
            remoto.write(str(files)+'\n')
            remoto.close()

# Comparo archivo local con remoto
# /tmp/res/pendiente.txt=0:
os.remove(r"c:\proyecto\res\pendiente.txt") 
        print i,' Existe \n'
    else:
        pendiente = open(r"c:\proyecto\res\pendiente.txt",'a')
        print 'Archivo pendient: '+i
        pendiente.write(str(i)+'\n')
        directorio = os.chdir(r"C:\proyecto\archivos")
        print 'Directorio actual: '+os.getcwd()
        subir=i.split("\n",1)
        # Envio el archivo faltante
        ith pysftp.Connection('servidor_remoto.com', username='usuario', password='clave') as sftp:
            sftp.cd('/tmp')
            sftp.put(str(subir[0]))
        pendiente.close()
   
 

Comentarios

Entradas populares de este blog

Tutorial: Introducci贸n a PyTorch - Primeros Pasos en Deep Learning

  Muy interesado en este mundo de todo lo relacionado con inteligencia artificial hoy quiero que aprendamos juntos a utilizar PyTorch, una de las librer铆as m谩s populares para Deep Learning, con ejemplos pr谩cticos. En este tutorial iremos (porque yo tambi茅n estoy aprendiendo) paso a paso para comenzar con PyTorch y construir nuestros primeros modelos de redes neuronales.  Bienvenido (a)!. El Deep Learning es una rama fascinante de la inteligencia artificial que ha logrado resultados impresionantes en una variedad de problemas complejos. En este tutorial, aprender谩s a utilizar PyTorch, una potente librer铆a de Python desarrollada por Facebook, para construir y entrenar modelos de deep learning desde cero. ¿Qu茅 es PyTorch? PyTorch es una librer铆a de Python para computaci贸n en Deep Learning que permite tanto entrenar modelos como usarlos para inferencia. Es conocida por su flexibilidad y facilidad de uso, lo que la convierte en una excelente opci贸n tanto para investigadores como pa...

Las 10 Aplicaciones M谩s Descargadas en Google Play Store y Apple App Store en 2024

  En el mundo digital actual, las aplicaciones m贸viles juegan un papel crucial en nuestras vidas diarias. Con millones de aplicaciones disponibles, solo unas pocas logran destacar y acumular millones de descargas. En este art铆culo, exploramos las aplicaciones m谩s descargadas en Google Play Store y Apple App Store hasta la primera mitad de 2024. 1. Instagram Instagram sigue siendo una de las aplicaciones m谩s populares a nivel mundial. Con 696 millones de descargas en Google Play Store, esta plataforma de redes sociales permite a los usuarios compartir fotos y videos, interactuar con amigos y seguir a celebridades. 2. TikTok TikTok, la aplicaci贸n de videos cortos, ha revolucionado la forma en que consumimos contenido. Con 654 millones de descargas en Google Play Store, se mantiene como una de las favoritas entre los usuarios j贸venes y creativos. 3. Facebook Facebook, la red social pionera, contin煤a siendo relevante con 553 millones de descargas . La plataforma ofrece una variedad d...

Inyecci贸n SQL: Qu茅 es y C贸mo prevenirla

La inyecci贸n SQL es una de las vulnerabilidades de seguridad m谩s peligrosas y comunes en aplicaciones web. Permite a los atacantes interferir con las consultas que una aplicaci贸n hace a su base de datos, lo que puede llevar a la exposici贸n de datos sensibles y control total sobre la base de datos afectada. En este art铆culo, exploraremos qu茅 es la inyecci贸n SQL, las nuevas t茅cnicas que se est谩n utilizando y c贸mo puedes proteger tu aplicaci贸n contra este tipo de ataques. ¿Qu茅 es la Inyecci贸n SQL? La inyecci贸n SQL (SQL Injection) ocurre cuando un atacante inserta c贸digo SQL malicioso en un campo de entrada, el cual es luego ejecutado por la base de datos. Este tipo de ataque explota la falta de sanitizaci贸n de entradas y permite a los atacantes acceder, modificar o eliminar datos de la base de datos. Nuevas T茅cnicas de Inyecci贸n SQL Con el tiempo, los atacantes han desarrollado nuevas t茅cnicas para explotar las vulnerabilidades de inyecci贸n SQL. Algunas de las m谩s recientes incluyen: Inye...