Rechercher

6.6. Copier des fichiers vers ou depuis un conteneur OpenShift Container Platform

download PDF

Vous pouvez utiliser l'interface de commande pour copier des fichiers locaux vers ou depuis un répertoire distant dans un conteneur à l'aide de la commande rsync.

6.6.1. Comprendre comment copier des fichiers

La commande oc rsync, ou synchronisation à distance, est un outil utile pour copier des archives de bases de données vers et depuis vos modules à des fins de sauvegarde et de restauration. Vous pouvez également utiliser oc rsync pour copier les modifications du code source dans un pod en cours d'exécution pour le débogage du développement, lorsque le pod en cours d'exécution prend en charge le rechargement à chaud des fichiers source.

$ oc rsync <source> <destination> [-c <container>]

6.6.1.1. Requirements

Spécification de la source de la copie
L'argument source de la commande oc rsync doit pointer vers un répertoire local ou un répertoire pod. Les fichiers individuels ne sont pas pris en charge.

Lors de la spécification d'un répertoire de pods, le nom du répertoire doit être préfixé par le nom du pod :

<pod name>:<dir>

Si le nom du répertoire se termine par un séparateur de chemin (/), seul le contenu du répertoire est copié vers la destination. Sinon, le répertoire et son contenu sont copiés vers la destination.

Spécification de la destination de la copie
L'argument de destination de la commande oc rsync doit pointer vers un répertoire. Si le répertoire n'existe pas, mais que rsync est utilisé pour la copie, le répertoire est créé pour vous.
Suppression de fichiers à la destination
L'option --delete peut être utilisée pour supprimer tous les fichiers du répertoire distant qui ne se trouvent pas dans le répertoire local.
Synchronisation continue en cas de changement de fichier
L'utilisation de l'option --watch permet à la commande de surveiller le chemin d'accès à la source pour toute modification du système de fichiers et de synchroniser les modifications lorsqu'elles se produisent. Avec cet argument, la commande s'exécute indéfiniment.

La synchronisation s'effectue après de courtes périodes de silence afin de s'assurer qu'un système de fichiers en évolution rapide n'entraîne pas d'appels de synchronisation continus.

Lorsque vous utilisez l'option --watch, le comportement est effectivement le même que l'invocation manuelle répétée de oc rsync, y compris tous les arguments normalement transmis à oc rsync. Par conséquent, vous pouvez contrôler le comportement via les mêmes drapeaux que ceux utilisés pour les invocations manuelles de oc rsync, tels que --delete.

6.6.2. Copier des fichiers vers et depuis des conteneurs

La prise en charge de la copie de fichiers locaux vers ou depuis un conteneur est intégrée à l'interface de gestion.

Conditions préalables

Lorsque vous travaillez avec oc rsync, tenez compte des points suivants :

rsync doit être installé
La commande oc rsync utilise l'outil local rsync s'il est présent sur la machine cliente et le conteneur distant.

Si rsync n'est pas trouvé localement ou dans le conteneur distant, une archive tar est créée localement et envoyée au conteneur où l'utilitaire tar est utilisé pour extraire les fichiers. Si tar n'est pas disponible dans le conteneur distant, la copie échoue.

La méthode de copie tar n'offre pas les mêmes fonctionnalités que oc rsync. Par exemple, oc rsync crée le répertoire de destination s'il n'existe pas et n'envoie que les fichiers qui sont différents entre la source et la destination.

Note

Sous Windows, le client cwRsync doit être installé et ajouté au PATH pour être utilisé avec la commande oc rsync.

Procédure

  • Pour copier un répertoire local dans un répertoire pod :

    $ oc rsync <local-dir> <pod-name>:/<remote-dir> -c <container-name>

    Par exemple :

    $ oc rsync /home/user/source devpod1234:/src -c user-container
  • Pour copier un répertoire pod dans un répertoire local :

    $ oc rsync devpod1234:/src /home/user/source

    Exemple de sortie

    $ oc rsync devpod1234:/src/status.txt /home/user/

6.6.3. Utiliser les fonctions avancées de Rsync

La commande oc rsync propose moins d'options de ligne de commande que la commande standard rsync. Si vous souhaitez utiliser une option de la ligne de commande rsync standard qui n'est pas disponible dans oc rsync, par exemple l'option --exclude-from=FILE, il est possible d'utiliser l'option --rsh (-e) ou la variable d'environnement RSYNC_RSH de la commande rsync standard comme solution de contournement, comme suit :

$ rsync --rsh='oc rsh' --exclude-from=FILE SRC POD:DEST

ou :

Exporter la variable RSYNC_RSH:

$ export RSYNC_RSH='oc rsh'

Exécutez ensuite la commande rsync :

$ rsync --exclude-from=FILE SRC POD:DEST

Les deux exemples ci-dessus configurent le logiciel standard rsync pour qu'il utilise oc rsh comme programme shell distant afin de lui permettre de se connecter au pod distant, et constituent une alternative à l'exécution de oc rsync.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.