Formation PUB110 : Linux, 2018 Opérations diverses

6.4 Copier un fichier sur une machine Linux à partir d'un autre ordinateur et vice-versa


Je vous présente ici deux techniques pour copier un fichier entre deux ordinateurs, par exemple entre votre ordinateur et un Raspberry Pi :

À l'aide de la commande scp

La commande scp (Secure CoPy), est très intéressante pour copier des fichiers d'un ordinateur vers un autre.

Sur un ordinateur Mac ou Linux, elle est disponible sans installlation supplémentaire.

Sur un ordinateur Windows, il faudra installer un utilitaire comme Putty ou PSCP

Il est possible de l'utiliser pour copier un fichier de l'ordinateur vers le Pi ou vice-versa.

L'adresse IP suivie des deux points (:) permettent d'identifier l'ordinateur distant (le Pi si vous lancez la commande sur votre ordinateur).

Copie de l'ordinateur vers le Raspberry Pi

Pour copier le fichier à la racine du dossier personnel de l'usager pi, entrez cette commande en prenant soin de changer pi pour le nom de votre usager sur Raspberry Pi OS et l'adresse IP pour celle du Pi.

Terminal de l'ordinateur

scp dossierlocal/monfichier.extension pi@192.168.1.145:

Pour copier le fichier dans un dossier précis du Pi :

Terminal de l'ordinateur

scp dossierlocal/monfichier.extension pi@192.168.1.145:/dossier/sous-dossier

Copier du Raspberry Pi vers l'ordinateur

Pour copier un fichier du Pi vers votre ordinateur, il suffit d'inverser le bloc source et le bloc destination :

Terminal de l'ordinateur

scp pi@192.168.1.145:/dossier/sous-dossier/monfichier.extension /dossierlocal

Copie d'un dossier complet

L'option -r permet de copier un dossier complet entre le Raspberry Pi et l'ordinateur.

Il faut spécifier le nom du dossier à copier sans le faire suivre d'une barre oblique ni d'un astérisque.

Pour copier le dossier de l'ordinateur vers le Pi :

Terminal de l'ordinateur

scp -r /dossierlocal pi@192.168.1.145:/dossiersurlepi

Pour copier le dossier du Pi vers l'ordinateur :

Terminal de l'ordinateur

scp -r pi@192.168.1.145:/dossiersurlepi /dossierlocal

Accès qui nécessite un port particulier

Certains systèmes, par exemple Home Assistant, exigent l'utilisation d'un port particulier pour un accès SSH. Ce port devra lui aussi être utilisé avec scp.

Dans cet exemple, j'ai travaillé avec l'usager root puisque c'est lui qui est utilisé sous Home Assistant.

Terminal de l'ordinateur

scp -P 22222 root@192.168.1.145:/dossier/sous-dossier/monfichier.extension /dossierlocal

ou, pour copier de l'ordinateur vers le Pi :

Terminal de l'ordinateur

scp -P 22222 /dossierlocal root@192.168.1.145:/dossier/sous-dossier/monfichier.extension

Erreur serveur non trouvé

Lors de l'utilisation de la commande scp, le serveur SSH pourrait être configuré pour travailler par défaut en mode sécurisé.

Vous le saurez si vous obtenez le message d'erreur suivant :

sh: /usr/libexec/sftp-server: not found
scp: Connection closed

Vous pourrez régler le problème en ajoutant l'option -O.

Selon la documentation de scp1 :

-O : Use the legacy SCP protocol for file transfers instead of the SFTP protocol. Forcing the use of the SCP protocol may be necessary for servers that do not implement SFTP, for backwards-compatibility for particular filename wildcard patterns and for expanding paths with a ‘~’ prefix for older SFTP servers.
Terminal

scp -O -P 22222 root@192.168.1.145:/dossier/sous-dossier/monfichier.extension /dossierlocal

À l'aide d'une clé USB

Pour effectuer une copie de fichier à l'aide d'une clé USB, suivez ces étapes :

  • Copiez le fichier sur une clé USB puis insérez la clé dans le Raspberry Pi.
  • Accédez à la ligne de commande du Pi soit via SSH, soit en y branchant un écran et un clavier.
  • Vous devez monter la clé pour que son contenu soit accessible.
    • Si c'est la première fois que vous utilisez une clé USB sur le Pi, créez le dossier de montage.
      Terminal

      sudo mkdir /mnt/cleusb

    • Vous pouvez maintenant monter la clé. Généralement, elle est reconnue comme /dev/sda1 mais elle pourrait être autre chose, par exemple /dev/sdb1.
      Terminal

      sudo mount /dev/sda1 /mnt/cleusb

  • Copiez le fichier de la clé USB vers le dossier désiré sur le Pi.
    Terminal

    cp /mnt/cleusb/monfichier.extension /dossier/sous-dossier

  • Démontez la clé USB avant de la retirer du Pi.
    Terminal

    sudo umount /dev/sda1

Source

1. « scp(1) — Linux manual page ». man7.org. https://man7.org/linux/man-pages/man1/scp.1.html

Pour plus d'information

« SCP (Secure Copy) ». Raspberry Pi. https://www.raspberrypi.org/documentation/remote-access/ssh/scp.md

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre