Qual é a melhor maneira de mover arquivos para um servidor web Ubuntu remoto?

2

Qual é a melhor maneira / ferramentas para mover arquivos para um servidor web Ubuntu remoto? Obviamente, uma pergunta newbie, mas devo criar uma montagem smb, usar ftp ou ssh?

    
por Christopher Altman 13.06.2009 / 23:06

5 respostas

3

scp, rsync sobre ssh são todos bons, mas para grandes conjuntos de dados (ou seja, muitos dados em muitos arquivos pequenos ou até mesmo grandes arquivos) eu uso tar sobre ssh sem compactação, fazendo o seguinte:

 cd /path/to/localdir && tar -cf - ./| ssh -o “Compression=off” someuser@someotherserver “tar -xf - -C /path/to/remote/dir”

O que isto faz é o tar irá criar um fluxo de dados que acabou de ser enviado por ssh encriptado mas sem compressão. Se você for empurrar isso para um link da Internet, seria melhor deixar a compressão omitindo a opção -o.

Para mais informações, veja aqui

    
por 19.06.2009 / 05:23
7
O

rsync é uma boa escolha. Ele normalmente usa o SSH, é esperto em copiar apenas o que é necessário e, o melhor de tudo, se ele for interrompido, você pode simplesmente reiniciá-lo.

    
por 13.06.2009 / 23:16
4

scp é bom se você quiser copiar alguns arquivos. O rsync é bom se você quiser copiar repetidamente o mesmo diretório para lugares. Se, no entanto, você estiver tentando copiar uma grande quantidade de dados entre duas máquinas, a única maneira de fazer isso é usando o netcat.

Na máquina receptora, execute:

# cd /dest/dir && nc -l -p 12345 | tar -xf -

Na máquina de envio, você agora pode executar:

# cd /src/dr && tar -xf - | nc -q 0 remote-server 12345

Você deve achar que tudo funciona bem e muito mais rápido. Se a largura de banda for mais restrita que a CPU, você poderá adicionar "z" ou "j" às opções de tar ("tar -xzf -", etc.) para compactar os dados antes de enviá-los pela rede. Se você está em gigabit, eu não me incomodaria com a compressão. Se ele morrer, você terá que começar do começo, mas poderá descobrir que pode usar o rsync se copiou o suficiente.

Vale ressaltar que isso não tem a segurança que scp ou rsync-over-ssh tem, portanto, confie nos endpoints e em tudo o que estiver entre eles se não quiser que ninguém veja os dados.

Por que não usar o scp? porque é incrivelmente lento em comparação. Deus sabe o que o scp está fazendo, mas não copia dados na velocidade do fio. Não é o encyption e descriptografia, porque isso apenas usar CPU e quando eu fiz isso não tem sido limite da CPU. Eu só posso supor que o processo scp tem muito handshaking e sobrecarga de protocolo ssh.

Por que não rsync? O Rsync realmente não te compra muito na primeira cópia. São apenas as execuções subseqüentes em que o rsync realmente brilha. No entanto, o rsync exige que a origem envie uma lista de arquivos completa ao destino antes de começar a copiar os dados. Se você tem um sistema de arquivos com um grande número de arquivos, isso é uma sobrecarga muito grande, especialmente porque o host de destino precisa mantê-lo na memória.

    
por 13.06.2009 / 23:42
2

Se você quiser mover arquivos de uma área de trabalho do Windows para um servidor Ubuntu remoto, tente WinSCP .

WinSCP is an open source free SFTP client and FTP client for Windows. Legacy SCP protocol is also supported. Its main function is safe copying of files between a local and a remote computer.

Verifique se o ssh está instalado no servidor Ubuntu.

sudo apt-get install ssh

    
por 14.06.2009 / 03:34
0

A melhor maneira de mover arquivos para um sistema remoto seria scp .

Uma cópia do diretório recursivo

scp -r locadir [email protected]:~/

Uma cópia de arquivo único

scp localfile [email protected]:~/

Se você deseja copiar um arquivo de um servidor remoto

scp [email protected]:~/localfile .

scp faz parte do pacote ssh, e deve estar disponível se você tiver ssh e sshd no servidor remoto.

    
por 13.06.2009 / 23:12