SCP est un programme de copie sécurisée pour transférer des fichiers ou des répertoires entre des hôtes Linux sur le réseau. SCP utilise le protocole ssh pour transférer les données.
Vous pouvez transférer des fichiers ou des répertoires comme suit :
1) Hôte local vers un hôte distant.
2) Système distant à votre système local.
3) Transfert entre deux hôtes distants depuis votre système local.
Dans ce didacticiel, apprenons quelques commandes scp pour transférer des fichiers entre des systèmes Linux.
1) Copiez un fichier de l'hôte distant vers le local à l'aide de la commande scp
L'exemple suivant copie le fichier nommé "file_for_copy.txt" du système distant "192.168.1.10" vers le répertoire actuel (le point indique le répertoire actuel) sur le système local.
$ scp [email protected]:/home/bobby/file_for_copy.txt .
[email protected]'s password:
file_for_copy.txt 100% 0 0.0KB/s 00:00
bobby@Inspiron-1440:~$ ls
file_for_copy.txt
Copiez un répertoire de l'hôte distant vers le local à l'aide de la commande scp
Les répertoires peuvent être copiés avec -r
option (comme la plupart des commandes comme cp), c'est-à-dire de manière récursive, afin que tout le contenu du répertoire puisse également être copié
$ scp -r [email protected]:/home/bobby/dir_for_copy .
[email protected]'s password:
file1.txt 100% 0 0.0KB/s 00:00
file3.txt 100% 0 0.0KB/s 00:00
file2.txt 100% 0 0.0KB/s 00:00
$ ls -ld dir_for_copy
drwxrwxr-x 2 bobby bobby 4096 2012-11-07 15:11 dir_for_copy
3) Copier un fichier de l'hôte local vers l'hôte distant
L'option -v de scp imprime une sortie détaillée, qui exécute ensuite le scp et imprime également des messages de débogage sur leur progression. Dans l'exemple suivant, l'option -v est utilisée. Ici, un fichier local est copié sur l'hôte distant.
$ scp -v examples.desktop [email protected]:/home/bobby
De même, un répertoire peut être copié avec -r
option. Dans l'exemple suivant, un répertoire nommé jvm est copié sur l'hôte distant.
$ scp -r jvm [email protected]:/tmp
[email protected]'s password:
file2.txt 100% 42 0.0KB/s 00:00
file.txt 100% 39 0.0KB/s 00:01
4) Copier des fichiers entre deux hôtes distants à partir d'un hôte local
Pour copier un fichier entre deux hôtes, le service ssh doit être exécuté sur les deux machines. Le -3
L'option transférera les fichiers entre deux hôtes distants via l'hôte local. La commande suivante copie le fichier /home/bobby/myfile1.txt de la machine 192.168.1.10 vers le répertoire /tmp sur la machine 192.168.1.20, avec une sortie détaillée.
$ scp -3 -v [email protected]:/home/bobby/myfile1.txt [email protected]:/tmp
De même, les répertoires peuvent être copiés entre deux machines distantes avec l'option -r.
$ scp -3 -r [email protected]:/home/bobby/mydir [email protected]:/tmp
[email protected]'s password:
Could not chdir to home directory /home/bobby: No such file or directory
[email protected]'s password:
5) SCP avec un numéro de port
Supposons que le port SSH de la machine distante soit 2200 (plutôt que le port SSH par défaut 22). Ensuite, vous devez exécuter la commande scp avec -P
comme suit :
$ scp –P 2200 -r test_folder [email protected]:/home/test/
6) Commande Scp Copier plusieurs fichiers (une doublure)
Vous pouvez copier plusieurs fichiers à la fois en utilisant la commande scp comme ci-dessous sans avoir à l'exécuter plusieurs fois
$ scp file1.txt file2.txt file3.txt [email protected]:/home/bobby
7) Copier des fichiers sans changer l'horodatage des fichiers
Parfois, vous souhaiterez peut-être conserver l'horodatage des fichiers d'origine. Mais lorsque vous les déplacez normalement vers un emplacement différent, l'horodatage est modifié. Mais avec -p
vous pouvez copier les fichiers avec les mêmes horodatages d'origine, comme ci-dessous.
$ scp -p file1.txt [email protected]:/home/bobby
8) Copier rapidement les fichiers SCP
Par défaut, Scp utilise AES-128 pour chiffrer les données car la sécurité est élevée. Mais l'inconvénient est que cela ralentit un peu le processus de copie de fichiers. Mais si vous souhaitez copier des fichiers en toute sécurité plus rapidement, vous pouvez utiliser Blowfish ou RC4 comme ci-dessous.
$ scp -c blowfish [email protected]:/home/user/file .
$ scp -c arcfour [email protected]:/home/user/file .
9) Commande Scp avec une sécurité accrue
Si c'est la sécurité que vous recherchez, vous pouvez copier des fichiers de manière plus sécurisée en utilisant 3DES. Mais cela ralentira un peu plus le processus.
$ scp -c 3des [email protected]:/home/user/file .
10) Commande Scp avec une bande passante limitée
Lorsque vous utilisez la commande scp, vous pouvez limiter votre bande passante comme ci-dessous (ici, la bande passante est spécifiée en Kbit/s).
$ scp -l50 [email protected]:/home/user/file .
11) Commande Scp avec IPV4 et IPV6
Si nécessaire, vous pouvez forcer la commande scp à utiliser IPV4 ou IPV6 comme ci-dessous
$ scp -4 [email protected]:/home/user/file .
$ scp -6 [email protected]:/home/user/file .
Conclusion
J'espère que vous avez apprécié la lecture de ce tutoriel sur l'utilisation de la commande scp avec des exemples. Je recommanderais de consulter la page de manuel de la commande scp pour plus d'informations.