Skip to content
VDS · Accès à la machine

scp et rsync : copier des fichiers

Deux commandes pour transférer des fichiers entre votre ordinateur et un serveur : quand scp suffit, à quoi rsync est utile, et comment ne pas écraser le répertoire d'autrui à cause d'une barre oblique finale.

Mis à jour le 23 août 2026

Un client graphique est pratique pour une modification ponctuelle, mais les déploiements et les sauvegardes sont plus simples à réaliser avec une seule commande.

scp : copie ponctuelle

La syntaxe est la même que celle de cp, à la différence qu'on indique une adresse de machine :

scp dump.sql root@203.0.113.10:/root/
scp root@203.0.113.10:/var/log/nginx/error.log ./
scp -r ./site root@203.0.113.10:/var/www/

La première commande envoie un fichier, la deuxième en récupère un, la troisième copie un répertoire entier (-r).

Si SSH écoute sur un autre port, précisez-le avec un -P majuscule :

scp -P 2222 dump.sql root@203.0.113.10:/root/

Avec un fichier ~/.ssh/config, les commandes deviennent plus courtes : scp dump.sql vds:/root/.

rsync : synchronisation

rsync ne transfère que les différences, peut reprendre un transfert interrompu et afficher la progression. Pour des déploiements répétés, il est bien plus rapide.

rsync -avz --progress ./site/ root@203.0.113.10:/var/www/example.com/
OptionCe qu'elle fait
-aPréserve les permissions, les horodatages, les liens
-vAffiche la liste des fichiers
-zCompresse le flux
--progressAffiche la progression du transfert
--deleteSupprime sur la machine tout ce que vous n'avez pas
--excludeIgnore tout ce qui est inutile

Un exemple de déploiement propre :

rsync -avz --delete \
  --exclude '.git' --exclude 'node_modules' --exclude '.env' \
  ./site/ vds:/var/www/example.com/

Récupérez une copie depuis la machine vers votre côté :

rsync -avz vds:/root/backup-2026-08-23.tar.gz ./backups/

Une barre oblique finale sur la source signifie « le contenu du répertoire ». ./site/ place les fichiers dans la cible, ./site crée un sous-répertoire site dans la cible. La moitié des déploiements « manquants » viennent de là.

Attention à --delete

L'option --delete fait du répertoire sur la machine une copie exacte du vôtre : tout élément superflu est supprimé sans demander confirmation. Faites d'abord une simulation :

rsync -avzn --delete ./site/ vds:/var/www/example.com/

L'option -n montre seulement ce qui se passerait. Une fois certain, retirez le n.

Vitesse

La vitesse du disque est plafonnée selon le grade : écriture à 60 Mo/s par cœur (pas moins de 60 et pas plus de 400), lecture deux fois plus rapide, et un burst trois fois supérieur au plafond tient pendant 30 secondes. La bande passante réseau va jusqu'à 500 Mbit/s. Sur VDS-1, l'envoi d'une grosse archive atteindra la limite d'écriture, et c'est normal, pas une panne. Pour vérifier ce qui se passe :

df -h
iostat -x 2

Erreurs courantes

SymptômeCause
Permission deniedVous écrivez dans un répertoire qui n'appartient pas à votre utilisateur — connectez-vous en root ou changez le propriétaire
No such file or directoryLe répertoire n'existe pas sur la machine et scp ne le crée pas : lancez mkdir -p au préalable
Les fichiers ont atterri un niveau plus hautUne barre oblique finale manquante ou en trop dans le chemin
rsync: command not foundInstallez le paquet des deux côtés : apt install -y rsync
Le site renvoie 403 après le déploiementLe propriétaire n'est pas défini : chown -R www-data:www-data /var/www/example.com

Si vous préférez un client graphique, consultez le transfert de fichiers via SFTP.