une astuce que je viens de découvrir: je cherchais à partager une soixantaine de video entre un PC sous Arch et un autre sous Debian Jessie, sans pour autant me prendre la tête à installer Samba, ni rien d'autre d'ailleurs. les softs genre Dukto, Transfer-on-lan et cie sont pratiques, mais autant pour Arch c'est pas un problème (grâce à AUR), autant pour les installer sous Debian c'est une misère (dépôts tiers que je n'avais pas envie de mettre).
et puis je suis tombé sur cette astuce.
vous avez besoin d'installer.... rien du tout: tout est déjà sur la machine; en effet, Python propose nativement un serveur web simple (et à priori, Python est installé sur toutes les machines).
sur la machines qui offre le ou les fichiers, ouvrez le terminal et placez vous dans le répertoire où sont les fichiers (qui servira de racine au serveur), et tapez cette commande: -si vous avez Python3 (comme sous Manjaro, Arch...)
sudo python -m http.server 80
-si vous avez Python2 (distros moins à jour)
sudo python -m SimpleHTTPServer 80
et c'est tout pour la machine qui partage (il faut laisser le terminal ouvert tant que ce n'est pas fini)
et sur la machine qui va télécharger, un navigateur web suffit, en allant à l'adresse de la machine qui partage (par exemple http://192.168.1.33).
si on a beaucoup de fichiers, et qu'on veut pas devoir cliquer sur tous les liens un par un, on peut utiliser Wget (là aussi présent dans toutes les distros); il faut se placer dans le répertoire où on veut que les fichiers soient téléchargés, et puis:
wget -r http://192.168.1.33/
et voilà, rien à installer, plus rapide que de se prendre la tête avec Samba ou NFS, plus rapide que de transférer dans des clés USB (surtout si comme moi vous avez 30 Go à envoyer); le réseau local que vous avez chez vous est bien plus rapide que tout ça...
NB: pour aller vraiment vite, on évitera le wifi (limité à 54 Mb/s); mieux vaut utiliser l'ethernet (surtout si toute l'install est compatible 10/100/1000)
Asus AIO - AMD E2 - Radeon HD 7340 - Manjaro 64 + Kf5 + Linux 3.14
merci ! et donc dès que le terminal est fermé, le serveur web est fermé et le partage n'existe plus ? Pas besoin de commande d'arrêt? Suffirait donc d'ouvrir le port 80 sur le firewall, de coller un alias avec la commande pour s'en rappeler, et basta. Parfait.
Macbook 5,1 - Manjaro-Xfce - CPU : Core2Duo 2Ghz | 4Go DDR3 | CG: NVIDIA GeForce 9400M | Son : NVIDIA MCP79
Thinkpad x250 - Arch-Gnome - CPU i5 5200U | 8Go DDR3 | CG: Intel HD 5500 | Son : Intel Wildcat Point-LP HDA
pour arrêter, soit tu fermes le terminal, soit un coup de Ctrl-C; c'est une commande qui ne rend pas la main (pas de retour d'invite tant que le serveur tourne). et quand c'est arrêté, plus de partage. d'ailleurs ça s'apparente plus à un cloud qu'à un partage de fichiers, un partage de fichiers pouvant habituellement être réglé pour autoriser l'écriture (donc l'upload), alors que là, ça ne marche que dans un sens.
je l'ai utilisé sur mon LAN, mais concrètement, il n'y a pas de raison que ça ne marche pas à l'extérieur si on crée une règle NAT et qu'on se rappelle de son IP publique; cela dit, je pense pas que ça soit super costaud niveau sécurité: c'est juste un module de Python, pas un serveur web complet.
Asus AIO - AMD E2 - Radeon HD 7340 - Manjaro 64 + Kf5 + Linux 3.14
sous Windows, pas de problème pour télécharger, puisqu'il faut juste un navigateur. dans l'autre sens, je sais pas, mais je crois pas que Python soit installé nativement sous Windows 7 (sous Windows 8 et 10, j'ai pas fait attention); d'un autre coté, le partage de fichiers avec Samba est simple à mettre en place sous Windows et installé nativement (contrairement à Linux). reste que pour ceux qui ont déjà Python sous Windows, à cause d'une application qui en aurait besoin, la commande doit être différente (à cause de la syntaxe du shell).
quand à Filezilla, c'est un client FTP, donc ça suppose un serveur FTP sur une des 2 machines (Proftpd, Wuftpd...).
Asus AIO - AMD E2 - Radeon HD 7340 - Manjaro 64 + Kf5 + Linux 3.14
#python -m pyftpdlib #démarre en actif sur le port 2121 (fonctionne sans soucis sur le reseau interne) #python -m pyftpdlib -p 21 #(pour changer le port d'ecoute (par contre pour les ports inferieurs a 1024 il faut passer par root) #autres solution faire une redirection dans la box ip interne 2121 ip externe 21
## serveur mode passif ## -p (port d'ecoute) -r (ports de transfer de données) -n (ip externe) (en ip statique on peut l'inscrire directement et commenter la troisieme ligne) ##-d (repertoire a partager) -w (droits en ecriture) (c'est vous qui voyez c'est un serveur anonyme dans l'etat acctuel)