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 bobby@192.168.1.10:/home/bobby/file_for_copy.txt .
bobby@192.168.1.10'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 bobby@192.168.1.10:/home/bobby/dir_for_copy .
bobby@192.168.1.10'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 bobby@192.168.1.10:/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 bobby@192.168.1.10:/tmp
bobby@192.168.1.10'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 bobby@192.168.1.10:/home/bobby/myfile1.txt bobby@192.168.1.20:/tmp De même, les répertoires peuvent être copiés entre deux machines distantes avec l'option -r.
$ scp -3 -r bobby@192.168.1.10:/home/bobby/mydir bobby@192.168.1.20:/tmp
bobby@192.168.1.20's password:
Could not chdir to home directory /home/bobby: No such file or directory
bobby@192.168.1.10'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 test@192.168.1.26:/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 bobby@192.168.1.10:/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 bobby@192.168.1.10:/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 bobby@192.168.1.10:/home/user/file . $ scp -c arcfour bobby@192.168.1.10:/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 bobby@192.168.1.10:/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 bobby@192.168.1.10:/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 bobby@192.168.1.10:/home/user/file . $ scp -6 bobby@192.168.1.10:/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.