Maison >Tutoriel système >Linux >Comment obtenir une copie de fichiers efficace dans le système Linux ?
À mesure que la quantité de données continue d'augmenter, l'efficacité de la copie de fichiers est devenue un problème inévitable dans le fonctionnement et la maintenance du serveur. Il existe de nombreuses façons de copier des fichiers sous les systèmes Linux, mais de nombreux utilisateurs ne savent peut-être pas quelle méthode convient à leurs propres scénarios. Dans cet article, nous vous présenterons plusieurs méthodes courantes de copie de fichiers Linux, analyserons leurs avantages et leurs inconvénients et vous aiderons à trouver la solution qui vous convient le mieux.
J'ai testé toutes les commandes et scripts dans mon propre environnement, afin que vous puissiez les utiliser directement dans votre travail quotidien.
Habituellement, tout le monde préfère scp car c'est l'une des commandes natives pour la copie de fichiers. Cependant, les autres commandes répertoriées dans cet article sont également très utiles et je vous suggère de les essayer.
La copie de fichiers peut être facilement effectuée en utilisant les quatre méthodes suivantes.
scp : copiez des fichiers entre deux hôtes du réseau. Il utilise ssh pour le transfert de fichiers et utilise la même méthode d'authentification avec la même sécurité.
rsync : est un outil de copie de fichiers rapide et polyvalent. Il peut être copié localement, entre d'autres hôtes via un shell distant ou avec un démon rsync distant.
pscp : est un programme qui copie des fichiers sur plusieurs hôtes en parallèle. Il fournit de nombreuses fonctionnalités, telles que la configuration de transferts sans secret pour scp, l'enregistrement de la sortie dans des fichiers et le contrôle des délais d'attente.
prsync : est également un programme qui copie des fichiers sur plusieurs hôtes en parallèle. Il fournit également de nombreuses fonctionnalités, telles que la configuration de transferts sans mot de passe pour ssh, l'enregistrement de la sortie dans des fichiers et le contrôle du délai d'attente.
Méthode 1 : Comment copier des fichiers/dossiers du système local vers le système distant à l'aide de la commande scp sous Linux ?
La commandescp
nous permet de copier des fichiers/dossiers du système local vers le système distant.
Je vais copier le fichier output.txt du système local vers le dossier /opt/backup du système distant 2g.CentOS.com.
# scp output.txt root@2g.CentOS.com:/opt/backup output.txt 100% 2468 2.4KB/s 00:00
Copiez les deux fichiers output.txt et passwd-up.sh du système local vers le dossier /opt/backup du système distant 2g.CentOs.com.
# scp output.txt passwd-up.sh root@2g.CentOS.com:/opt/backup output.txt 100% 2468 2.4KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00
Copiez le dossier shell-script du système local vers le dossier /opt/back du système distant 2g.CentOs.com.
Cela copiera tous les fichiers du dossier shell-script dans /opt/back.
# scp -r /home/daygeek/2g/shell-script/ root@:/opt/backup/ output.txt 100% 2468 2.4KB/s 00:00 ovh.sh 100% 76 0.1KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 passwd-up1.sh 100% 7 0.0KB/s 00:00 server-list.txt 100% 23 0.0KB/s 00:00
Méthode 2 : Comment copier des fichiers/dossiers sur plusieurs systèmes distants à l'aide de la commande scp et du script shell sous Linux ?
Si vous souhaitez copier le même fichier sur plusieurs serveurs distants, vous devez créer un petit script shell comme celui ci-dessous.
De plus, le serveur doit être ajouté au fichier server-list.txt. Assurez-vous qu'après un ajout réussi, chaque serveur doit être sur sa propre ligne.
Au final, le script que vous souhaitez ressemble à ceci :
# file-copy.sh #!/bin/sh for server in `more server-list.txt` do scp /home/daygeek/2g/shell-script/output.txt root@$server:/opt/backup done
Une fois terminé, définissez les autorisations exécutables sur le fichier file-copy.sh.
# chmod +x file-copy.sh
Enfin, exécutez le script pour terminer la copie.
# ./file-copy.sh output.txt 100% 2468 2.4KB/s 00:00 output.txt 100% 2468 2.4KB/s 00:00
Utilisez le script suivant pour copier plusieurs fichiers sur plusieurs serveurs distants.
# file-copy.sh #!/bin/sh for server in `more server-list.txt` do scp /home/daygeek/2g/shell-script/output.txt passwd-up.sh root@$server:/opt/backup done
Les résultats ci-dessous montrent que les deux fichiers sont copiés sur les deux serveurs.
# ./file-cp.sh output.txt 100% 2468 2.4KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 output.txt 100% 2468 2.4KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00
Utilisez le script ci-dessous pour copier des dossiers sur plusieurs serveurs distants de manière récursive.
# file-copy.sh #!/bin/sh for server in `more server-list.txt` do scp -r /home/daygeek/2g/shell-script/ root@$server:/opt/backup done
La sortie du script ci-dessus.
# ./file-cp.sh output.txt 100% 2468 2.4KB/s 00:00 ovh.sh 100% 76 0.1KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 passwd-up1.sh 100% 7 0.0KB/s 00:00 server-list.txt 100% 23 0.0KB/s 00:00 output.txt 100% 2468 2.4KB/s 00:00 ovh.sh 100% 76 0.1KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 passwd-up1.sh 100% 7 0.0KB/s 00:00 server-list.txt 100% 23 0.0KB/s 00:00
Méthode 3 : Comment utiliser la commande pscp pour copier des fichiers/dossiers sur plusieurs systèmes distants sous Linux ?
La commandepscp
nous permet de copier directement des fichiers sur plusieurs serveurs distants.
Utilisez la commande pscp ci-dessous pour copier un seul fichier sur un serveur distant.
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt /opt/backup [1] 18:46:11 [SUCCESS] 2g.CentOS.com
Utilisez la commande pscp ci-dessous pour copier plusieurs fichiers sur un serveur distant.
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt ovh.sh /opt/backup [1] 18:47:48 [SUCCESS] 2g.CentOS.com
Utilisez la commande pscp ci-dessous pour copier de manière récursive l'intégralité du dossier sur le serveur distant.
# pscp.pssh -H 2g.CentOS.com -r /home/daygeek/2g/shell-script/ /opt/backup [1] 18:48:46 [SUCCESS] 2g.CentOS.com
Utilisez la commande pscp ci-dessous pour copier un seul fichier sur plusieurs serveurs distants à l'aide de la commande ci-dessous.
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt /opt/backup [1] 18:49:48 [SUCCESS] 2g.CentOS.com [2] 18:49:48 [SUCCESS] 2g.Debian.com
Utilisez la commande pscp ci-dessous pour copier plusieurs fichiers sur plusieurs serveurs distants.
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt passwd-up.sh /opt/backup [1] 18:50:30 [SUCCESS] 2g.Debian.com [2] 18:50:30 [SUCCESS] 2g.CentOS.com
**
Utilisez la commande suivante pour copier de manière récursive un dossier sur plusieurs serveurs distants. **
# pscp.pssh -h server-list.txt -r /home/daygeek/2g/shell-script/ /opt/backup [1] 18:51:31 [SUCCESS] 2g.Debian.com [2] 18:51:31 [SUCCESS] 2g.CentOS.com
En général, il n'est pas difficile de réaliser une copie de fichiers efficace dans les systèmes Linux. Tant que vous choisissez les outils ou commandes correspondants en fonction des besoins réels, vous pouvez améliorer la vitesse et l'efficacité du transfert de fichiers. Dans cet article, nous présentons plusieurs méthodes courantes de copie de fichiers et analysons leurs avantages et inconvénients. J'espère que cet article pourra aider les administrateurs système Linux et permettre à chacun de mieux comprendre les principes et les méthodes de copie de fichiers.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!