Comment transférer un fichier volumineux depuis une connexion lente grâce à GNU/Linux
- Mise à jour le 16 oct. 2024

J'ai régulièrement à transférer quelques gros fichier entre deux hôtes GNU/Linux mais depuis une connexion internet lente.
Je vais détailler ici les différentes étapes pour faciliter cela.
Schéma réseau
Pour cet exemple j'utiliserai une adresse ip privée (192.168.1.200
) mais ça fonctionnera évidement aussi avec une adresse ip publique.
L'opération consiste à découper notre gros fichiers en plusieurs petits. De cette façon, si notre transfert est coupé nous serons en mesure de reprendre depuis le moment ou cela s'est arrété.

Installation des outils
- Pour transférer nos fichiers, nous aurons besoin sur nos deux machines de
rsync
etopenssh
:
root@host:~# apt-get update && apt-get install rsync openssh-server
Découper le fichier
- La commande
du
nous permet de voir que notre fichier fait 2,9Go :
user@SOURCE:~$ du -sh MyBigFile.mkv
-rw-r--r-- 1 user std 2,9G 8 déc. 12:12 MyBigFile.mkv
- Comme dit précédemment, nous allons découper notre gros fichier en plusieurs petits grâce à la commande
split
:
- Les options de
split
:-d
: utilise un suffixe numérique qui commence à 0-b
: taille des fichiers, ici nous découperons par fichiers de 5Mo.
user@SOURCE:~$ split MyBigFile.mkv -d -b 5M
user@SOURCE:~$ ls -lh
-rw-r--r-- 1 std std 5,0M 8 déc. 23:47 x00
-rw-r--r-- 1 std std 5,0M 8 déc. 23:47 x01
[...]
-rw-r--r-- 1 std std 5,0M 8 déc. 23:48 x9481
-rw-r--r-- 1 std std 5,0M 8 déc. 23:48 x9482
Transfert de fichiers
Maintenant nous pouvons transférer nos fichiers de 5Mo vers notre destination. Dans le cas ou la connexion se coupe durant le transfert, rsync
sera en mesure de reprendre la copie à partir du dernier fichier transféré.
- Options
rsync
:-a
: mode archive--bwlimit=400k
: (Optionnel) nous pouvons paramétrer la bande passante maximum. Ici,400ko/s
.--rsh='ssh -p 22'
: Préciser leport ssh
de 192.168.1.200. Utile si présence d'un NAT ou si le port par défaut à été changé.--stats
: (Optionnel) À la fin, donner des statistiques sur le transfert effectué.--progress
: (Optionnel) affiche une barre de progression du transfert courant.user@192.168.1.200:/home/SOURCE/x*
: Dossier source, où se trouvent les fichiers découpés. Ici dans le répertoire/home/SOURCE/
./home/DESTINATION/
: Répertoire de destination.
user@DESTINATION:~$ rsync --bwlimit=400k -a -v --rsh='ssh -p 22' --stats --progress user@192.168.1.200:/home/SOURCE/x* /home/DESTINATION/
Réunifier le fichier
- Une fois que tous nos fichiers de 5Mo ont été transférés nous pouvons réunifier notre fichier originel.
user@DESTINATION:~$ cd /home/DESTINATION/
user@DESTINATION:~$ cat x* > glory.41.720p.hdtv.x264-verum.mkv
user@DESTINATION:~$ ls -lh glory.41.720p.hdtv.x264-verum.mkv
-rw-r--r-- 1 user std 2,9G 8 déc. 23:45 glory.41.720p.hdtv.x264-verum.mkv