Une méthode pour transférer rapidement des fichiers d'une station de travail vers un ordinateur portable🔗

Posted by Médéric Ribreux 🗓 In blog/ Sysadmin/

Introduction

Parfois, on veut balancer des gros fichiers (des vidéos, des archives PDF, de la musique, tout une collection de photos) d'un ordinateur à un autre. Le faire avec une clef USB ou même un disque USB prend du temps: il faut d'abord réaliser un transfert sur le périphérique intermédiaire et seulement après, on peut faire la deuxième copie. De plus, il faut avoir à disposition un câble USB et peut-être aussi une alimentation pour le disque USB intermédiaire.

Voici la méthode que j'utilise qui est finalement assez simple à mettre en œuvre dans le cadre de ma configuration. D'abord, la majorité des machines que j'administre à la maison sont connectées au réseau local par du Wifi. De facto, elles disposent toutes d'un port Ethernet qui est le plus souvent inutilisé !

Information essentielle: les cartes réseaux de maintenant savent très bien se passer des fameux câbles Ethernet croisés qu'il fallait auparavant avoir à disposition. Donc, de facto, vous avez un connecteur Gigabit à votre disposition. Gigabit signifie que vous pouvez transférer des fichiers aux alentours de 85-90 Mo/s. Un film 720p encodé en H264 ou Webm d'environ 1,2 Go mettra donc 15 secondes pour être transféré !

Voyons comment faire sous Debian…

Configurations réseau ethernet

Le principe est simple: nous allons créer un sous-réseau manuel (192.168.1.0/24) et configurer chaque carte pour utiliser ce sous-réseau.

Voici ce que donne une partie du fichier /etc/network/interfaces pour la carte eth0 d'une machine:

# Configuration Ethernet pour la copie rapide
allow-hotplug eth0

iface eth0 inet static
  address 192.168.1.x
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255

Vous pouvez également créer un fichier dédié à cette interface avec le contenu sus-cité et le placer dans /etc/network/interfaces.d/.

Il faut remplacer x par un numéro unique pour chaque machine. Pour ne pas me tromper, je prends le numéro terminal de l'adresse IP attribuée par DHCP, ce qui me permet de ne pas avoir de doublon, quoiqu'il arrive.

Configuration automatique de l'interface réseau

Le terme allow-hotplug indique que la carte réseau sera configurée automatiquement lorsqu'un câble réseau sera branché. Mais ce n'est pas le cas si vous n'avez pas installé et configuré le paquet [ifplugd](). Ce dernier assure le travail du "hotplug". Vous devez donc l'installer et également le configurer à minima.

Tout ce que vous avez à faire, c'est de modifier le fichier /etc/default/ifplugd pour indiquer quelles interfaces surveiller. Voici un exemple de configuration:

# This file may be changed either manually or by running dpkg-reconfigure.
#
# N.B.: dpkg-reconfigure deletes everything from this file except for
# the assignments to variables INTERFACES, HOTPLUG_INTERFACES, ARGS and
# SUSPEND_ACTION.  When run it uses the current values of those variables
# as their default values, thus preserving the administrator's changes.
#
# This file is sourced by both the init script /etc/init.d/ifplugd and
# the udev script /lib/udev/ifplugd.agent to give default values.
# The init script starts ifplugd for all interfaces listed in
# INTERFACES, and the udev script starts ifplugd for all interfaces
# listed in HOTPLUG_INTERFACES. The special value all starts one
# ifplugd for all interfaces being present.
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"

J'ai juste renseigné eth0 dans les variables INTERFACES et HOTPLUG_INTERFACES. Après avoir relancé le service, cette configuration devrait fonctionner. À noter que lorsque vous débranchez la prise, l'interface réseau reste active (sans IP forcément).

Faire la copie

Une fois la configuration réalisée, il suffit de brancher le câble réseau entre les deux machines. L'auto-plug permet d'activer les cartes toutes seules.

Ensuite, scp fera le reste:

scp ip_machine_distante:/emplacement/des/fichiers/a/copier /repertoire/vers_où/copier

Même si SSH chiffre la communication, on a des vitesses de transfert de l'ordre de 90Mo/s…

Conclusion

Avec juste un câble Ethernet, on a de quoi copier rapidement de grandes quantités de fichiers avec une configuration minimaliste…

Je ne sais pas si des câbles USB de machine à machine existent mais ça serait une bonne idée !