Tengo una gran cantidad de datos (varios GB) en una unidad remota, que se monta de forma transparente a través de nfs. Me gustaría copiar estos archivos en un subdirectorio de donde ya residen, para que todo permanezca en el mismo disco físico. Por esa razón, me gustaría evitar un viaje de ida y vuelta innecesario a través de la red.
Parece que cp files* subdir
hace lo ingenuo y lee todos los datos en la memoria y luego los vuelve a escribir. ¿Es eso cierto? ¿Existe un comando especial que realice la copia real por completo en el servidor al que está conectado físicamente el disco?
cp
) o mover (como enmv
)? Si mueve los archivos, no veo por qué debería haber algún viaje de ida y vuelta.Respuestas:
Parece que cp files * subdir hace lo ingenuo y lee todos los datos en la memoria y luego los vuelve a escribir. ¿Es eso cierto?
Si.
¿Existe un comando especial que realice la copia real por completo en el servidor al que está conectado físicamente el disco?
No, a menos que pueda iniciar sesión en la máquina remota con ssh y copiar allí.
EDITAR Se está trabajando para agregar "copia del lado del servidor" al protocolo NFS versión 4.2 (la actual es 4.1). Ver, por ejemplo, http://www.usenix.org/events/fast11/posters_files/Lentini.pdf . Tenga en cuenta que usar esta función requeriría a) clientes y servidores NFS que lo admitan b) una nueva llamada al sistema para el sistema operativo del cliente (¿tal vez reflink o copyfile ()?) C) soporte para usar la nueva llamada al sistema en las utilidades habituales (cp, rsync , etc.) Supongo que pasarán al menos varios años antes de que todo esto salga a la luz.
fuente