Cómo archivar archivos y subcarpetas en una ubicación a otro lugar en Linux - linux, shell

Estoy tratando de crear un script de shell para copiarcarpetas y archivos dentro de esas carpetas de una máquina Linux a otra máquina linux. Después de copiar me gustaría eliminar solo los archivos que se copian. Quiero conservar la estructura de carpetas como es.

P.ej.

La máquina X tiene una carpeta principal llamada F con subcarpetas A, B, C, carpetas en las que cada una tiene 10 archivos.

Me gustaría hacer una copia de tal manera quela máquina Y tendrá una carpeta llamada F con las subcarpetas A, B, C que contienen los mismos archivos. Una vez que se completa la copia de todas las carpetas y archivos, debe eliminar todos los archivos en la carpeta de origen pero conservar las carpetas.

Respuestas

0 para la respuesta № 1

El código de abajo no está probado. Utilizar con cuidado y copia de seguridad primero.

Algo como esto debería ayudarte a comenzar:

#!/bin/bash

srcdir=...

set -ex

rsync 
--verbose 
--recursive 
"${srcdir}/" 
[email protected]:/dstdir/

find "${srcdir}" -type f -delete

Selecciona el srcdir variable y el argumento remoto para rsync a gusto.

Las opciones de rsync son solo de memoria, por lo que es posible que necesiten ajustes. Leer la documentación, especialmente las opciones de eliminación, copia de seguridad, permisos y enlaces.

(Prefiero no contestar preguntas peticiones así es como no signos de esfuerzo, pero mis dedos picaban, así que ahí tienes.)


-1 para la respuesta № 2

Scp los archivos, verifique el código de salida del scp y luego elimine los archivos localmente.

Algo como scp files [email protected]:/path/ && rm files

Si el scp ha fallado, la segunda parte del comando no se ejecutará


Menú