Mover arquivos de pasta para pasta em um servidor remoto usando SSH sem baixá-los para o computador local

0

Eu tenho um servidor de teste do Debian remoto ao qual me conecto via SSH (cliente Putty). Eu queria mover muitos arquivos em uma máquina remota para outra pasta:

remote: /mnt/a/ -> remote: /mnt/b/c/
RESULT@remote: /mnt/b/c/a/

Eu usei um comando move (mv) conectado a um computador remoto com SSH do meu computador local:

mv /mnt/a/ /mnt/b/c/

Eu fiz isso com cerca de 700 MB de dados (cerca de 5 arquivos) e demorou uma eternidade para copiar esses arquivos.

O comando mv transfere os arquivos para o computador local por meio do SSH e, em seguida, os envia de volta para outra pasta no servidor? Em caso afirmativo, existe algum outro comando que eu possa usar para mover os arquivos apenas localmente no servidor remoto?

    
por Joudicek Jouda 04.01.2015 / 14:53

2 respostas

3

Contanto que seus caminhos de origem e de destino estejam no mesmo sistema de arquivos, mv na verdade não "moverá" nada. Ele apenas edita os metadados de seus diretórios e arquivos (inodes e links), mas os próprios blocos de dados não são movidos. Por exemplo, supondo que /home e /srv estejam em sistemas de arquivos diferentes, você observará o seguinte:

$ mv /home/bigfile.txt /home/mydir/ # Instant.
$ mv /home/bigfile.txt /srv # Takes time.

Se você está movendo todos os dados de um sistema de arquivos para outro, então ele precisa ser fisicamente copiado de uma seção de disco para outra: blocos de dados precisam ser movidos e isso pode levar tempo (e para ser honesto, você não pode fazer muito sobre isso).

Fazê-lo por SSH não muda nada. SSH significa Secure Shell, o que significa que você está adquirindo um shell remoto real, não apenas usando sua máquina como um relé para tudo. Tudo o que você solicitar da sua máquina remota através do SSH é feito remotamente.

    
por 04.01.2015 / 15:00
1

Para tornar os arquivos em movimento através de uma sessão SSH mais robusta, recomendo que você use a tela (ou tmux ou algo similar). Caso contrário, você corre o risco de sua sessão SSH ser interrompida (falha de rede, falha de energia no sistema local, fecha acidentalmente a janela PuTTY, o Windows entra em espera / hibernação, etc). Se sua sessão SSH for interrompida, sua operação de movimentação será interrompida (inacabada - melhor cenário) ou dados sendo perdidos / corrompidos (cenário de pior caso).

Também IMO ao mover grandes quantidades de dados rsync é uma opção melhor. Em primeiro lugar porque você pode facilmente configurá-lo para mostrar o progresso (para que você saiba que ele não parou, etc). Em segundo lugar, porque se for interrompido, pode ser reiniciado sem ter que refazer o que já foi feito com sucesso ...

    
por 16.02.2015 / 23:57

Tags