Comment transférer des fichiers d'un serveur Linux à un autre?

De nombreuses tâches impliquent de déplacer un ou plusieurs fichiers d'un serveur à un autre
Dans un environnement Linux multi-serveurs, de nombreuses tâches impliquent de déplacer un ou plusieurs fichiers d'un serveur à un autre.

Dans un environnement Linux multi-serveurs, de nombreuses tâches impliquent de déplacer un ou plusieurs fichiers d'un serveur à un autre. En fonction du nombre de fichiers à déplacer, plusieurs commandes peuvent vous aider...

Les commandes présentées ci-dessus ne sont que des exemples d'exécution de commandes pour copier
Les commandes présentées ci-dessus ne sont que des exemples d'exécution de commandes pour copier des fichiers sur le serveur.

Supposons pour ces discussions que nos serveurs sont Alice et Madhat, et que notre utilisateur sur Alice est lapin, et notre utilisateur sur madhat est Fieldmouse.

Pas

  1. 1
    Pour un seul fichier, essayez la commande "scp". Vous pouvez l'utiliser comme une commande "push" ou "pull", mais commençons par pousser le fichier vers l'autre serveur. Pendant que vous êtes sur Alice, utilisez la commande "scp myfile fieldmouse @ madhat: thatfile". Cela copiera le fichier sur l'autre système, dans l'ID utilisateur de la souris de champ, avec le nom "thatfile". Si vous étiez connecté sur l'autre système, vous pourriez tout aussi facilement extraire le fichier avec la commande "scp rabbit @ alice: myfile thatfile", et obtenir les mêmes résultats.
  2. 2
    Pour copier un répertoire entier, nous pouvons à nouveau nous tourner vers la commande "scp". Cette fois, nous allons ajouter le commutateur -r, pour que la copie agisse "récursivement". "scp -r mydir fieldmouse @ madhat:." copiera le répertoire entier "mydir" sur l'autre système, y compris tout son contenu et les répertoires supplémentaires. Le répertoire sur madhat sera toujours nommé mydir.
  3. 3
    Que faire si vous avez un grand "désordre" de fichiers et de répertoires à copier? Vous pouvez utiliser la commande "tar" pour créer un seul fichier, puis copier ce fichier comme ci-dessus, puis utiliser tar pour le développer sur l'autre serveur... Mais cela semble être le cas... Un-unix-like. Il doit y avoir un moyen de le faire en une seule étape, non? Bien sûr, entrez les tuyaux de votre coquille préférée. Nous pouvons toujours utiliser tar pour empaqueter les fichiers que nous voulons, puis utiliser ssh pour les amener sur l'autre système (c'est ce que scp a utilisé sous les couvertures), et tar de l'autre côté pour étendre les fichiers. Mais pourquoi perdre du temps et de l'espace à créer un véritable fichier tar, alors que nous pourrions simplement créer un tube couvrant les deux systèmes et y transférer les données tar? En utilisant le même répertoire que dans l'exemple précédent, essayez "tar -cf - mydir / * | ssh fieldmouse @ madhat 'tar -xf - '"

Conseils

  • Bien sûr, il existe également d'autres moyens de le faire. Linux regorge d'outils. Votre kilométrage peut varier
  • Vous devez remplacer le nom d'utilisateur / le nom d'hôte / le nom de fichier / le nom de répertoire en fonction de votre configuration réseau et de votre environnement lors de l'utilisation des commandes ci-dessus. Les commandes présentées ci-dessus ne sont que des exemples d'exécution de commandes pour copier des fichiers sur le serveur.

Mises en garde

  • Assurez-vous que les UID et GID des différents systèmes que vous utilisez correspondent (pas seulement les noms d'utilisateur). Sinon, des problèmes de sécurité intéressants s'ensuivront.
FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail