7.6. Copier des fichiers vers ou à partir d’un service Red Hat OpenShift sur le conteneur AWS


Il est possible d’utiliser le CLI pour copier des fichiers locaux vers ou à partir d’un répertoire distant dans un conteneur à l’aide de la commande rsync.

7.6.1. Comprendre comment copier des fichiers

La commande oc rsync, ou synchronisation à distance, est un outil utile pour copier les archives de base de données vers et à partir de vos pods à des fins de sauvegarde et de restauration. Il est également possible d’utiliser oc rsync pour copier les modifications de code source dans un pod en cours d’exécution pour le débogage de 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>]
Copy to Clipboard Toggle word wrap

7.6.1.1. A) Exigences

Définir la source de 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 pod, le nom du répertoire doit être préfixé avec le nom de pod:

<pod name>:<dir>
Copy to Clipboard Toggle word wrap

Lorsque le nom du répertoire se termine dans un séparateur de chemin (/), seul le contenu du répertoire est copié vers la destination. Dans le cas contraire, le répertoire et son contenu sont copiés vers la destination.

En spécifiant la destination Copier
L’argument de destination de la commande oc rsync doit pointer vers un répertoire. Dans le cas où le répertoire n’existe pas, mais que rsync est utilisé pour la copie, le répertoire est créé pour vous.
La suppression de fichiers à la destination
L’indicateur --delete peut être utilisé pour supprimer tous les fichiers dans le répertoire distant qui ne sont pas dans le répertoire local.
Synchronisation continue sur la modification de fichier

En utilisant l’option --watch, la commande surveille le chemin source pour toutes les modifications du système de fichiers et synchronise les modifications lorsqu’elles se produisent. Avec cet argument, la commande s’exécute pour toujours.

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

Lors de l’utilisation de l’option --watch, le comportement est effectivement le même que d’invoquer manuellement oc rsync à plusieurs reprises, y compris tous les arguments normalement passés à oc rsync. Ainsi, vous pouvez contrôler le comportement via les mêmes drapeaux utilisés avec des invocations manuelles d’oc rsync, comme --delete.

7.6.2. Copier des fichiers vers et depuis des conteneurs

La prise en charge de la copie de fichiers locaux à destination ou à partir d’un conteneur est intégrée dans le CLI.

Conditions préalables

Lorsque vous travaillez avec oc rsync, notez ce qui suit:

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

    Lorsque 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 de goudron est utilisé pour extraire les fichiers. Lorsque le goudron n’est pas disponible dans le conteneur distant, la copie échoue.

    La méthode de copie de goudron ne fournit pas la même fonctionnalité que oc rsync. À titre d’exemple, oc rsync crée le répertoire de destination s’il n’existe pas et envoie uniquement des fichiers qui sont différents entre la source et la destination.

    Note

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

Procédure

  • Copier un répertoire local dans un répertoire pod:

    $ oc rsync <local-dir> <pod-name>:/<remote-dir> -c <container-name>
    Copy to Clipboard Toggle word wrap

    À titre d’exemple:

    $ oc rsync /home/user/source devpod1234:/src -c user-container
    Copy to Clipboard Toggle word wrap
  • Copier un répertoire pod dans un répertoire local:

    $ oc rsync devpod1234:/src /home/user/source
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    $ oc rsync devpod1234:/src/status.txt /home/user/
    Copy to Clipboard Toggle word wrap

7.6.3. En utilisant des fonctionnalités avancées de Rsync

La commande oc rsync expose moins d’options de ligne de commande que rsync standard. Dans le cas où vous souhaitez utiliser une option de ligne de commande rsync standard qui n’est pas disponible dans oc rsync, par exemple l’option --exclude-from=FILE, il pourrait être possible d’utiliser l’option standard rsync --rsh (-e) ou RSYNC_RSH comme solution de contournement:

$ rsync --rsh='oc rsh' --exclude-from=<file_name> <local-dir> <pod-name>:/<remote-dir>
Copy to Clipboard Toggle word wrap

a) ou:

Exporter la variable RSYNC_RSH:

$ export RSYNC_RSH='oc rsh'
Copy to Clipboard Toggle word wrap

Ensuite, exécutez la commande rsync:

$ rsync --exclude-from=<file_name> <local-dir> <pod-name>:/<remote-dir>
Copy to Clipboard Toggle word wrap

Les deux exemples ci-dessus configurent rsync standard pour utiliser oc rsh comme programme shell distant pour lui permettre de se connecter à la pod distante, et sont une alternative à l’exécution oc rsync.

Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat