Respuestas:
Una palabra: rsync
.
Tenga en cuenta que si está en un enlace lento, o el servidor está bajo una gran carga, la herramienta utilizada para copiar no será el cuello de botella, y cualquier forma de copia será lenta de todos modos.
Esto debería darle el uso básico para copiar entre su computadora local y el servidor remoto: http://oreilly.com/pub/h/38
Para copiar desde una computadora local a un servidor remoto (por supuesto, debe reemplazar las rutas, el nombre de usuario y la dirección de host):
rsync -avz -e ssh /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
-a
archivo-v
verboso-z
comprimir-e ssh
"usar un túnel SSH"Para copiar en la otra dirección, cambie las rutas (primero es desde , segundo es hacia ):
rsync -avz -e ssh remoteuser@remotehost.somewhere.example.com:/path/on/server /path/on/local/computer
Pero rsync es útil incluso para copiar cosas en el mismo servidor:
rsync -av /path-to/copy/from /path_to/copy/to
-z
para copiar o copiar LAN dentro de una máquina; prueba con y sin -z
copia a través de Internet (uno u otro puede ser más rápido, dependiendo de muchas cosas).
-e ssh
ahora es el predeterminado para los hosts remotos, por lo que no es necesario pasar la opción explícitamente.
Otra palabra: scp
scp /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
Para ofertas únicas, scp es útil. Si se trata de muchos archivos, entonces rsync es una buena idea. Si se cae una conexión, rsync puede continuar donde se quedó.
Sabía que rsync tenía compresión ( -z
), y acabo de enterarme de que scp también ( -C
).
En su configuración, rsync es probablemente suficiente ... pero, por ejemplo, si hay muchos archivos pequeños, puede ser más rápido manipular los archivos primero que transferirlos luego a través de rsync. Esto se debe a que la transferencia del propietario, las marcas de tiempo y los permisos es a veces más pesada que el archivo en sí mismo si el archivo es pequeño. Tar combinará toda esa información en un archivo y rsync copiará bloques más grandes.
O incluso mejor, si no se necesita seguridad, use tar y nc:
En el destino, prepara un demonio receptor, descomprime y descomprime:
nc -l -p 12345 | pigz -d | tar xvf -
En la fuente, alquila todo, comprime en paralelo y envíalo al destino:
tar cvf - ./ | pigz | nc host 12345
-z
opción fuera para la copia local, ya que agrega una sobrecarga innecesaria. En mi humilde opinión, solo debe usar-z
cuando use rsync en un enlace de red lento. Si copia grandes cantidades de datos sobre 100Base-T, puede estar bien sin eso-z
. Con una conexión de red rápida, el uso de la compresión puede vincular su CPU y privar a otros procesos.