Cómo mover archivos entre servidores

Ya sabe, si realiza mucha administración del sistema, es posible que desee escribir un script que pueda mover archivos entre servidores.

No soy realmente un administrador de sistemas, pero todavía tengo que hacer estas cosas en algunos programas. Python tiene varios paquetes de terceros que brindan esta funcionalidad. Veamos cómo hacerlo Paramiko de acuerdo a PyCrypto (o descargue PyCrypto desde Tarta).

Aprende más de python con estos temas:

Escribir código

Suponiendo que tiene todos los paquetes de terceros anteriores, puede comenzar a codificar. Para simplificar, el primer ejemplo usa paramiko. El siguiente código se basa libremente en el código que uso en el trabajo. ¡Vamos a ver!

Recomendado: Preguntas entrevista python

import paramiko

########################################################################
class SSHConnection(object):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, host, username, password, port=22):
        """Initialize and setup connection"""
        self.sftp = None
        self.sftp_open = False
        
        # open SSH Transport stream
        self.transport = paramiko.Transport((host, port))
        
        self.transport.connect(username=username, password=password)
        
    #----------------------------------------------------------------------
    def _openSFTPConnection(self):
        """
        Opens an SFTP connection if not already open
        """
        if not self.sftp_open:
            self.sftp = paramiko.SFTPClient.from_transport(self.transport)
            self.sftp_open = True
    
    #----------------------------------------------------------------------
    def get(self, remote_path, local_path=None):
        """
        Copies a file from the remote host to the local host.
        """
        self._openSFTPConnection()        
        self.sftp.get(remote_path, local_path)        
            
    #----------------------------------------------------------------------
    def put(self, local_path, remote_path=None):
        """
        Copies a file from the local host to the remote host
        """
        self._openSFTPConnection()
        self.sftp.put(local_path, remote_path)
        
    #----------------------------------------------------------------------
    def close(self):
        """
        Close SFTP connection and ssh connection
        """
        if self.sftp_open:
            self.sftp.close()
            self.sftp_open = False
        self.transport.close()
        
if __name__ == "__main__":
    host = "myserver"
    username = "mike"
    pw = "dingbat!"
    
    origin = '/home/mld/projects/ssh/random_file.txt'
    dst="/home/mdriscoll/random_file.txt"
    
    ssh = SSHConnection(host, username, pw)
    ssh.put(origin, dst)
    ssh.close()

Vamos a desglosarlo. La clase __init__ debe pasar al menos algunos parámetros. En este ejemplo, pase el host, el nombre de usuario y la contraseña. A continuación, abra el objeto de flujo de transporte SSH. Próximo, poner Una forma de enviar archivos desde nuestra máquina al servidor. Si desea descargar el archivo, consulte . haber método Finalmente Escoger Cómo cerrar la conexión.

Recomendado: ¿ Quién invento Python ?

Los métodos put y get llaman a un método semiprivado que comprueba si el SFTPClient se ha inicializado y, en caso contrario, procede a crearlo.

Palabras finales

Paramico ciertamente lo hace fácil. Recomiendo encarecidamente leer la publicación anterior de Jesse sobre este tema (enlace a continuación), ya que Jesse lo explica con más detalle. Me gustaría saber qué paquetes usan otras personas para ssh y scp, así que deje un consejo en los comentarios.

Recomendado: Árbol de decisión SkLearn

¿ Te fue útil este artículo ?
⬇️ Ayudame compartiendo para poder llegar a más personas.⬇️

6 comentarios en «Cómo mover archivos entre servidores»

  1. ¡Interesante artículo! ¿Crees que la programación sea más difícil que mover archivos? 🤔

    • ¡Definitivamente la programación es más desafiante que simplemente mover archivos! Requiere un pensamiento lógico y creativo, además de habilidades específicas. ¡Pero con práctica y dedicación, cualquiera puede aprender a programar! ¿Estás listo para el desafío? 💻💪

  2. ¡No entiendo por qué complicarse con FTP cuando se puede usar SCP! ¡Más seguridad!

    • Pues para los que no son expertos en tecnología, FTP puede ser más accesible y fácil de usar. ¡No todos necesitamos complicarnos con SCP para nuestras necesidades básicas! Al final, lo importante es encontrar la herramienta que funcione mejor para cada uno.

  3. ¡Interesante artículo! ¿Se podría aplicar esto para transferir archivos grandes en redes lentas? 🤔

    • ¡Hola! Sí, definitivamente se podría aplicar para transferir archivos grandes en redes lentas. La clave está en optimizar la configuración y el uso de herramientas adecuadas. ¡Buena suerte con tus transferencias! 😉👍

Los comentarios están cerrados.