Transferência simples de arquivos

17

Dadas duas caixas Linux em uma LAN, qual é a maneira mais simples de transferir arquivos entre elas?

David Thornley
fonte

Respostas:

22

Eu uso scp.

scp source desthost:/path/to/dest/.

copiar da máquina local para a máquina remota ou

scp srchost:/path/to/file/file .

copiar de uma máquina remota para a máquina local.

Se o nome de usuário não for o mesmo na máquina remota,

scp user@srchost:/path/to/file/file .
KeithB
fonte
3
Gostaria de acrescentar que você pode usar a opção -r com scp para copiar recursivamente um diretório inteiro scp desthost fonte -r: caminho / / a / dest /
Steve Burdine
1
@Steve_ Bom ponto. O -C também comprime os arquivos à medida que eles são transferidos, o que pode ajudar com links lentos.
KeithB
É para mim scpou rsyncpara mim.
21410 Josh K
6

Eu costumo montar um diretório através do ssh via FUSE e sshfs.

Montagem:

$ sshfs name@server:/path/to/dir /path/to/mount/point

Desmontar:

$ fusermount -u /path/to/mount/point
Maik
fonte
5

Eu uso o netcat (se não precisar de segurança)

nc -l -p 1234 < send_file   # 'server'
nc x.y.z.t 1234 > receive_file  # 'client'
nc3b
fonte
2
Eu gosto especialmente deste combo:tar -c files and folders/ |pv -cN in|lzop|pv -cN out|nc x.y.z.t 1234
jpc 22/03
5

NFS pode ser útil.

O NFS (Network File System) permite que um nó cliente execute acesso transparente a arquivos pela rede. Ao usar o NFS, um nó cliente opera em arquivos que residem em uma variedade de servidores e arquiteturas de servidor e em uma variedade de sistemas operacionais. As chamadas de acesso a arquivos no cliente (como solicitações de leitura) são convertidas em solicitações de protocolo NFS e enviadas ao sistema do servidor pela rede.

Você pode precisar de ajuda do seu administrador Unix para configurá-lo pela primeira vez, mas é muito útil.

Hemant
fonte
Para transferências rápidas-n-sujas * nix-a-* nix, nada chega nem perto do NFS. Um bom administrador pode acionar as duas caixas e fazer transferências em menos de 5 minutos, é quase transparente para o resto do sistema e é bem conhecido e estável. +1 para algo que não exija o envio de uma linha de comando toda vez para transferir algo.
Avery Payne
2

Para transferências únicas de arquivos, geralmente uso SFTP ou um compartilhamento de samba existente.

Para manter a sincronização, sugiro que você tente rsync ou unison (para sincronização bidirecional)

Edit: scp seria melhor sftp, pois funcionaria em todos os hosts habilitados para SSH

Gert
fonte
2

Para fazer backups, costumo usar o rsync. Se eu quiser fazer backup em uma máquina remota, colocarei uma linha em / etc / fstab para manter a máquina remota montada por NFS ou CFIS (Samba).

192.168.0.101:/ /mnt/backup nfs rsize=8192,wsize=8192,timeo=14,intr 0 0

Então tenho uma linha no meu crontab usando o rsync.

rsync -av /home/user/sourcedir/ /mnt/backup/destinationdir > /home/user/backup.log
jjclarkson
fonte
1

O netcat é simples, mas nem todas as versões fecham a conexão de maneira confiável.

Aqui está um tópico sobre o uso socat: transferência confiável de arquivos socat sobre TCP

Resumindo:

Proposta :

Servidor enviando arquivo:

server$ socat -u FILE:test.dat TCP-LISTEN:9876,reuseaddr
client$ socat -u TCP:127.0.0.1:9876 OPEN:out.dat,creat

Servidor que recebe o arquivo:

server$ socat -u TCP-LISTEN:9876,reuseaddr OPEN:out.txt,creat && cat out.txt
client$ socat -u FILE:test.txt TCP:127.0.0.1:9876

Aprimoramentos propostos :

  • OPEN:out.txt,creat,truncexcluirá todos os bytes out.txtantes de gravá-lo. Essa opção imita o que você esperaria cpe provavelmente é o que você deseja.
  • OPEN:out.txt,creat,exclse recusará a escrever out.txtse ele já existir. Use esta opção para segurança extra.
  • OPEN:out.txt,creat,appendanexará dados a out.txt.
Grzegorz Wierzowiecki
fonte
1

Giver é um aplicativo simples para compartilhamento de arquivos. Outras pessoas executando o Giver na sua rede são descobertas automaticamente e você pode enviar arquivos para elas, simplesmente arrastando os arquivos para a foto ou o ícone mostrado no Giver.

No Ubuntu:

sudo apt-get install giver
Gasuma
fonte
0

Além disso, você pode usar o programa Giver . Com ele, você pode transferir arquivos pela LAN com 2 cliques ou "arrastar e soltar" o arquivo para o destinatário. Os destinatários (que também precisam ser executados giver) são descobertos pelo Zeroconf, para que você não precise saber nem o IP deles. Aqui está o vídeo sobre como o Giver funciona .

Andrei Dziahel
fonte
2
Como alguém que trabalhou no Giver no passado, posso dizer que é um aplicativo interessante, mas é totalmente insustentável e possui muitos bugs, principalmente quando se trata de transferir arquivos grandes. Não espere muito disso.
Sandy
@ Sandy sim, estou ciente de bugs. No meu caso, os arquivos 1.4G foram transferidos com sucesso. De qualquer forma, o uso do Giver ainda parece muito mais fácil do que o NFS / rsync / nc / o que for.
Andrei Dziahel 15/08/10
0

Se você não possui uma conta (senha) no host de recebimento, pode usar woos (oferta da web em um fluxo):

woos arquivo ou diretório ...

http://fex.belwue.de/fstools/woos.html

Framstag
fonte