¿Cómo no copiar pero mover archivos de un servidor a otro (ambos Linux)?
man scp
No me dio nada útil. No puedo usar 'scp' y luego 'rm' porque debo asegurarme de que el archivo se haya transferido correctamente. Si hay algún error durante la transferencia, el archivo no debe eliminarse.
Tal vez debería usar el código de salida de alguna manera, pero ¿cómo? Además, hay muchos archivos, y si el último archivo falla, sería una opción no tan buena mantener todos los archivos transferidos con éxito.
Tal vez hay algo además de SCP?
linux
networking
scp
Putnik
fuente
fuente
-e ssh
es el valor predeterminado implícito durante muchos años, por lo general ya no es necesario usar este parámetro.smv() { rsync -az --remove-source-files "$@"; }
a mi caja de herramientas. Gracias.Usar en
rsync
lugar descp
:Más información con
man rsync
.fuente
Esta pregunta ha sido respondida bien, y la respuesta fue aceptada, pero como está flotando en la parte superior de la primera página, pensé que al menos trataría de responderla con mayor precisión, aunque con menos elegancia. Sí, puede usar el código de retorno
scp
, y lo hago a menudo. Enbash
:Tomo su punto sobre múltiples archivos para copiar y manejar los errores en la pila correctamente, así que para múltiples archivos:
Esto último solo es práctico si lo está usando
ssh-agent
, pero espero que lo sea.fuente
-l
bandera. Por ejemplo,-l 8192
para limitar las transferencias a 8192 kb / sen mi situación, el puerto ssh no es 22, entonces
funciona para mi.
fuente
si tiene un servidor de destino más antiguo que yo, no puede usar
pero tienes que usar
en lugar.
fuente
Si hacerlo en dos pasos no es un problema, puede usarlo
scp
para copiar el archivo del servidor remoto y luego ejecutarlossh -e "rm /path/to/file"
para eliminarlo del disco. Al mover archivos, especialmente entre máquinas, las cosas pueden salir mal, por lo que puede ser bueno realizar la copia y eliminar por separado, y solo eliminar el archivo cuando esté seguro de que se ha copiado con éxito primero.fuente