Para los administradores y programadores de Linux, filtrar y transferir archivos nuevos entre servidores es una tarea común que requiere una solución eficiente y segura. Aquí es donde scp (Secure Copy) toma protagonismo. Sin embargo, usar scp para filtrar archivos nuevos entre servidores no siempre es sencillo. Este artículo te guiará a través de este proceso utilizando diversos métodos y comandos.
El papel de SCP en la transferencia de archivos
El SCP (Secure Copy) es una herramienta que utiliza el protocolo SSH para transferir archivos de manera segura entre dos ubicaciones. Su fortaleza radica en su capacidad para mantener los datos protegidos durante la transferencia, evitando la posibilidad de intercepción o manipulación de los datos.
Detección y filtrado de archivos nuevos
El desafío viene cuando necesitamos transferir solo los archivos nuevos, es decir, aquellos archivos que se han añadido o modificado desde la última transferencia. Aquí es donde los comandos y métodos detallados a continuación pueden ser de gran ayuda.
rsync -avz --ignore-existing /origen/ usuario@destino:/destino/
Aquí usamos el comando rsync, una herramienta de sincronización de archivos ampliamente utilizada en sistemas Linux. Con la opción –ignore-existing, rsync omite los archivos que ya existen en el destino. De esta manera, se encarga de copiar solamente los archivos nuevos o modificados.
Integración con SCP
Ahora, para integrar el filtrado de archivos con scp, tenemos que combinar ambas herramientas de la siguiente manera:
rsync -avz --ignore-existing /source/ user@destination:/destination/
Importante destacar que para que funcione correctamente este comando, rsync debe estar instalado tanto en el servidor de origen como en el de destino.
Otras alternativas a SCP y Rsync
Existe otra forma popular de filtrar y transferir archivos nuevos entre dos servidores de Linux utilizando lftp. Es una herramienta versátil y potente que permite trabajar con varios protocolos de transferencia de archivos.
lftp -u user,password -e 'mirror --only-newer /source /destination; quit' sftp://destination
Con el comando anterior, lftp se conectará al servidor de destino a través de sftp (SSH File Transfer Protocol), un protocolo de transferencia de archivos seguro. Luego, el comando mirror –only-newer se encargará de copiar solo los archivos más recientes del origen al destino.
Automatización del proceso
Para hacer este proceso aún más eficiente, podríamos automatizarlo mediante la creación de un script bash que se ejecute a intervalos regulares utilizando cron, el planificador de tareas de Linux. Aquí se muestra un ejemplo de cómo se podría hacer esto:
#!/bin/bash rsync -avz --ignore-existing /source/ user@destination:/destination/
Para finalizar, es fundamental mencionar que la seguridad en la transferencia de datos es vital. Por lo tanto, utilizar herramientas como SCP, rsync o lftp nos proporciona la garantía de que nuestros archivos llegarán a su destino de manera segura, preservando la confidencialidad e integridad de los datos.