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.

TomTom
la source
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.

dr01
la source
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.

Anveshak
la source
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.

Marco
la source
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 .
terdon
la source
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

Framstag
la source
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