Copiar contenido filtrado del archivo al servidor remoto a través de rsync.
Sé cómo copiar archivos entre servidores utilizando rsync. Pero estaba buscando una opción donde no quiero copiar todo el contenido de un archivo en otro servidor.
Ejemplo: Quiero copiar /var/log/messages filtrado por la fecha de hoy en el servidor remoto en la carpeta con la fecha de hoy, y el contenido de mañana en la carpeta con la fecha de mañana, y así sucesivamente. Aunque puedo lograr lo mismo creando archivos temporales en el nodo local antes de transferir, estoy buscando una solución donde se pueda transferir los datos filtrados al servidor remoto sin crear ningún archivo temporal local.
davy.ai
Una possible solución para transferir datos filtrados sin crear archivos temporales locales es utilizar la opción
--rsync-path
de rsync en conjunto con los comandosssh
yfind
.Aquí tienes el proceso paso a paso para lograr esto:
ssh
.find
para filtrar el contenido basado en la fecha de hoy. Por ejemplo, para filtrar/var/log/messages
por la fecha de hoy, puedes utilizar el siguiente comando:Esto mostrará una lista de todos los archivos en
/var/log/messages
que fueron modificados después de la fecha de hoy.find
al comandorsync
utilizando la opción--rsync-path
para transferir los datos filtrados al servidor remoto. La opción--rsync-path
especifica la ruta al comandorsync
en el servidor remoto. Por ejemplo:Esto transferirá todos los archivos filtrados por la fecha de hoy a la carpeta
fecha de hoy
en el servidor remoto.Nota: Asegúrate de reemplazar
servidor_remoto
por el nombre de host o dirección IP real del servidor remoto, y/ruta/hasta/carpeta/de/fecha/de/hoy
por la ruta real de la carpeta de destino en el servidor remoto. Además, utiliza permisos y opciones adecuadas con los comandosrsync
yssh
según tus necesidades.