Transferencia SCP solo archivos modificados

Transferencia SCP solo archivos modificados

Estoy usando el siguiente comando para transferir archivos entre servidores

scp -rc blowfish /source/directory/* [email protected]:/destination/directory

¿Hay alguna manera de transferir solo archivos modificados como updateel comando para cp?

Respuesta1

rsynces tu amigo.

rsync -ru /source/directory/* [email protected]:/destination/directory

Si desea que elimine archivos en el destino que ya no existen en el origen, agregue la --deleteopción.

Respuesta2

Generalmente uno pide scp porque hay una razón. Es decir, no se puede instalar rsyncd en el objetivo.

files=`find . -newermt "-3600 secs"`

for file in $files
do
       sshpass -p "" scp "$file" "root@$IP://usr/local/www/current/$file"
done

Respuesta3

Otra opción:

remote_sum=$(ssh ${remote} sha256sum ${dest_filename})
remote_sum=${remote_sum%% *}
local_sum=$(sha256sum ${local_filename})
local_sum=${local_sum%% *}
if [[ ${local_sum} != ${remote_sum} ]]; then
  scp ${local_filename} ${remote}:${remote_filename}
fi

Esto está bien para un archivo, pero será un poco lento para muchos archivos, dependiendo de qué tan rápido SSH pueda realizar conexiones repetidas. Si tiene controladores configurados en su conexión SSH, puede que no sea tan malo. Si necesita copiar un árbol de directorios while de forma recursiva, puede ejecutar un único comando SSH que sume todos los archivos, coloque el resultado en una matriz asociativa bash, haga lo mismo en el host local y luego compare las sumas de los archivos para decidir si para hacer la copia. Pero es casi seguro que sea más fácil instalar rsync en el control remoto.

información relacionada