Maneira mais simples de enviar arquivos pela rede

14

Qual é a maneira mais simples e versátil de enviar arquivos pela rede para outros computadores? Com isso, quero dizer computadores que outras pessoas estão usando no momento. Não acho que o SSH funcione se o computador tiver uma sessão ativa aberta.

Até agora estou usando netcat, o que funciona bem. Mas existem outras maneiras simples de fazer isso? Um problema que tenho netcaté que o destinatário precisa saber o final do arquivo e criar um nome para o fluxo.

TomTom
fonte
1
Se você quiser continuar usando, netcatpode enviar um tararquivo e extraí-lo em tempo real. Isso resolverá o problema do nome do arquivo e é mais flexível. Mas no final eu acho scpou rsyncé a opção mais fácil.
Marco
Como seria o envio de um alcatrão e sua extração em tempo real?
TomTom
1
Suponho que estaria netcat hostname | tar -xno diretório em que você deseja colocar os arquivos.
Dmitry Grigoryev

Respostas:

21

Você está complicando sua vida desnecessariamente. Use scp.

Para transferir um arquivo myfile de seu diretório local para o diretório / foo / bar na máquina otherhost como usuário do usuário , aqui está a sintaxe: scp myfile user@otherhost:/foo/bar.

EDIT: Vale a pena notar que a transferência via scp / SSH é criptografada, enquanto a transferência via netcat ou HTTP não é. Portanto, se você estiver transferindo arquivos confidenciais, sempre use o primeiro.

dr01
fonte
Não preciso de uma senha para scpa conta de usuário?
TomTom
Sim, claro. Você precisa de uma senha para a conta user@otherhost.
dr01
2
Não, você não precisa de uma senha se você usar autenticação de chave pública
yomismo
9
Ok, se você quiser ser exigente, vamos declarar que você precisa se autenticar como user@otherhost.
dr01
1
Além disso, como uma simplificação, se o seu nome de usuário for o mesmo nas duas máquinas, você poderá excluir o nome de usuário. No entanto, ainda será solicitada uma senha quando aplicável.
Sildoreth
10

Você também pode tentar

python -m SimpleHTTPServer 8180

Ele servirá os arquivos no diretório em que é executado através de HTTP, você pode acessá-lo através do Navegador.

Anveshak
fonte
Ou use darkhttpd quando estiver insatisfeito com o desempenho.
TNW
1
Para Python 3: python3 -m http.server <port>.
dotancohen
Veja aqui para mais informações sobre esta opção: askubuntu.com/a/95607/42073
Segal-Halevi
Obrigado! Perfeito para obter alguns arquivos em um sistema de teste do Windows
QwertyChouskie
9

Se você estiver satisfeito, netcatpoderá solucionar o problema do nome do arquivo, introduzindo-o tar. Isso também simplifica o envio de vários arquivos de uma só vez, bem como o envio de diretórios.

No lado de envio, use:

tar cf - <files> | nc <host> <port>

E no lado receptor:

nc -l <port> | tar x

Outra solução seria usar rsyncor scp.

Marco
fonte
Normalmente, adiciono -q2 ao envio netcattambém, para desligar a conexão no final do fluxo.
Simon Richter
Não entendo por que isso deve ser necessário. Ele desliga automaticamente sem a -qopção.
Marco
Isso depende de qual implementação de netcat você usa. Existem implementações que fecham apenas uma direção do fluxo TCP quando o stdin é fechado, porque a outra direção ainda pode estar ativa.
21915 Simon Simonter
tar | ssh tartambém funciona muito bem nos casos em que o scp cai e o rsync não está disponível.
Hbbs #
2

Obviamente sshfunciona se outra sessão estiver aberta. Você pode apenas fazer

ssh user@host cat /path/to/file.tar  > localfile.tar

Ou, para copiar para o diretório local:

scp user@host:/path/to/file.tar .
terdon
fonte
É possível o contrário, por exemplo ssh lubuntu '>newfile.txt' <file.txt?
heemayl
1
@ heemayl sim, para cat em um arquivo remoto, você faria cat local.file | ssh user@host "cat > remote.file", ou ssh user@host "cat > remote.file" < local.file.
terdon
0

Se os dois hosts estiverem na mesma LAN, você poderá usar o woos .

É extremamente simples de usar.

Se o remetente e o destinatário estiverem em QUALQUER LUGAR da Internet e você precisar transferir GRANDES ARQUIVOS, instale o F * EX: http://fex.belwue.de/index.html

Framstag
fonte
1
O scp básico também é extremamente simples e uma ferramenta que é realmente distribuída, confiável e usada por milhões de pessoas, ao contrário dessas ferramentas caseiras que parecem ter sido promovidas por seus autores.
21818 Jack Wasey