Moyen le plus simple d'envoyer des fichiers sur le réseau


14

Quelle est la manière la plus simple et la plus polyvalente d'envoyer des fichiers via le réseau à d'autres ordinateurs? J'entends par là des ordinateurs que d'autres utilisent actuellement. Je ne pense pas que SSH fonctionne si l'ordinateur a une session active ouverte.

Jusqu'à présent, j'utilise netcat, ce qui fonctionne bien. Mais existe-t-il d'autres moyens simples de procéder? Un problème que j'ai avec netcat, c'est que le récepteur doit connaître la fin du fichier et doit trouver un nom pour le flux.


1
Si vous souhaitez continuer à utiliser, netcatvous pouvez envoyer une tararchive et l'extraire à la volée. Cela résoudra le problème du nom de fichier et il est plus flexible. Mais à la fin je suppose scpou rsyncest l'option la plus facile.
Marco

Comment fonctionnerait l'envoi d'un goudron et son extraction à la volée?
TomTom

1
Je suppose que ce serait netcat hostname | tar -xdans le répertoire où vous souhaitez mettre les fichiers.
Dmitry Grigoryev

Réponses:


21

Vous compliquez inutilement votre vie. Utilisez scp.

Pour transférer un fichier monfichier à partir de votre répertoire local dans le répertoire / foo / bar sur la machine otherhost en tant qu'utilisateur utilisateur , voici la syntaxe: scp myfile user@otherhost:/foo/bar.

EDIT: Il convient de noter que le transfert via scp / SSH est crypté tandis que le transfert via netcat ou HTTP ne l'est pas. Donc, si vous transférez des fichiers sensibles, utilisez toujours le premier.


N'ai-je pas besoin d'un mot de passe pour scple compte utilisateur?
TomTom

Oui bien sûr. Vous avez besoin d'un mot de passe pour le compte user@otherhost.
dr01

2
Non, vous n'avez pas besoin d'un mot de passe si vous utilisez l'authentification par clé publique
YoMismo

9
Ok, si vous voulez être pointilleux, disons que vous devez vous authentifier en tant que user@otherhost.
dr01

1
De plus, pour simplifier, si votre nom d'utilisateur est le même sur les deux machines, vous pouvez exclure le nom d'utilisateur. Cependant, il vous demandera toujours un mot de passe, le cas échéant.
Sildoreth

10

Vous pouvez aussi essayer

python -m SimpleHTTPServer 8180

Il servira les fichiers dans le répertoire dans lequel il a été exécuté via HTTP, vous pouvez y accéder via le navigateur.


Ou utilisez darkhttpd lorsque vous n'êtes pas satisfait des performances.
TNW

1
Pour Python 3: python3 -m http.server <port>.
dotancohen

Voir ici pour plus d'informations sur cette option: askubuntu.com/a/95607/42073
Erel Segal-Halevi

Merci! Parfait pour obtenir des fichiers sur un système de test Windows
QwertyChouskie

9

Si vous êtes satisfait, netcatvous pouvez contourner le problème du nom de fichier en intrusant tar. Cela simplifie également l'envoi de plusieurs fichiers à la fois ainsi que l'envoi de répertoires.

Côté envoi, utilisez:

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

Et côté réception:

nc -l <port> | tar x

Une autre solution serait d'utiliser rsyncou scp.


J'ajoute généralement -q2 à l'envoi netcatégalement, pour lui faire couper la connexion à la fin du flux.
Simon Richter

Je ne comprends pas pourquoi cela devrait être requis. Il s'arrête automatiquement sans -qoption.
Marco

Cela dépend de l'implémentation netcat que vous utilisez. Il existe des implémentations qui ne ferment qu'une direction du flux TCP lorsque stdin se ferme, car l'autre direction peut toujours être active.
Simon Richter

tar | ssh tarfonctionne également très bien dans les cas où scp tombe et rsync n'est pas disponible.
hobbs

2

Bien sûr, sshfonctionne si une autre session est ouverte. Tu peux juste faire

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

Ou, pour copier dans votre répertoire local:

scp user@host:/path/to/file.tar .

Est-ce possible dans l'autre sens, par exemple ssh lubuntu '>newfile.txt' <file.txt?
heemayl

1
@heemayl oui, pour chatter dans un fichier distant, vous le feriez cat local.file | ssh user@host "cat > remote.file", ou ssh user@host "cat > remote.file" < local.file.
terdon

0

Si les deux hôtes sont dans le même réseau local, vous pouvez utiliser des woos .

Son utilisation est extrêmement simple.

Si l'expéditeur et le destinataire se trouvent PARTOUT sur Internet et que vous devez transférer de GRANDS FICHIERS, vous devez installer F * EX: http://fex.belwue.de/index.html


1
scp de base est également extrêmement simple, et un outil qui est réellement distribué, approuvé et utilisé par des millions de personnes, contrairement à ces outils faits maison qui semblent être promus par leur auteur.
Jack Wasey
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.