Pregunta: Recientemente tuve que copiar una gran cantidad de archivos que ocupaban un espacio de almacenamiento de 7 TB a otra ubicación en mi caja CentOS. Usé el comando 'cp', pero por alguna razón (puede ser un problema de red), el comando salió después de copiar algunos archivos y directorios. Ahora, si reanudo la operación de copia, el comando comienza de nuevo copiando los archivos que ya se han copiado (lo que nuevamente requiere mucho tiempo y CPU). Entonces mi pregunta es, ¿puedo decirle a 'cp ' comando para ignorar los archivos y directorios que ya se han copiado (para que pueda ahorrar algo de tiempo y CPU). ¿Alguna sugerencia?
Respuesta: Puede usar 'cp ‘comando o ‘rsync ‘ para copiar archivos.
Solución1:Primero veremos el comando CP:
cp -u --force <src> <dst>
Aquí –u La opción copia un archivo solo si el archivo ORIGEN es más nuevo que el archivo de destino o cuando falta el archivo de destino.
Nota :En caso de que el comando anterior aparezca como se indica a continuación:
cp : overwrite '<filename>'
Entonces, el 'cp ¡El comando sería un alias con un modo interactivo! Para encontrar el alias de 'cp', escriba el siguiente comando:
# type cp
cp is aliased to `cp -i'
Dado que es interactivo, solicitó que se proporcionara una entrada de usuario incluso si había especificado –force opción. Para evitar lo anterior y hacer una copia no interactiva, use la ruta absoluta del comando cp como se muestra a continuación:
/usr/bin/cp -u --force <src> <dst>
Solución 2:Usando el comando rsync:
# rsync -av --ignore-existing<src> <dst>
Nota :rsync creará una lista de archivos por adelantado. Si su fuente tiene un gran no. de archivos, luego rsync toma horas y horas y horas para crear una lista de archivos tan grande! y podría pensar que el proceso se ha colgado, en su lugar agregue -p y verás una barra de progreso y ¡realmente no tienes que pensar que rsync está colgando!