Maison > Article > Tutoriel système > La sauvegarde est aussi simple que cela : apprenez à utiliser facilement la commande Linux rsync
Dans l'utilisation quotidienne des ordinateurs modernes, la sauvegarde des données est particulièrement importante. Pour les utilisateurs Linux, la commande rsync est une méthode courante de sauvegarde et de synchronisation de fichiers. Il permet une synchronisation rapide et efficace des données entre différents systèmes ou dossiers locaux.
Contexte du projet : la synchronisation des données est requise entre le serveur A et le serveur B (soit 1-to-1, soit plusieurs-to-many, voici un exemple simple 1-to-1). Cette solution est souvent utilisée pour la reprise après sinistre à distance.
Il existe environ deux types de solutions de synchronisation basées sur des scénarios d'application, la synchronisation planifiée et la synchronisation en temps réel. La synchronisation planifiée présente les caractéristiques d'un temps de synchronisation fixe, de mauvaises performances en temps réel et d'une faible consommation de ressources ; la synchronisation en temps réel présente les caractéristiques d'une forte performance en temps réel, d'une synchronisation intensive et d'une consommation de ressources élevée.
1. Synchronisation programmée
1. Installer le logiciel :
yum install rsync -y
2. Connexion sans mot de passe (vous pouvez également utiliser du texte brut pour simuler une connexion interactive, mais du point de vue de la sécurité, il est recommandé d'utiliser une connexion sans mot de passe) :
ssh-keygen -t rsa
Après la génération, vous pouvez entrer dans le répertoire cd ~/.ssh/ et copier le contenu de la clé générée ~/.ssh/id_rsa.pub vers /root/.ssh/authorized_keys sur l'hôte distant
De nombreux étudiants ici sont curieux de savoir pourquoi il n'est pas nécessaire de saisir un mot de passe pour les opérations ci-dessus. Les étudiants qui connaissent la connexion sans mot de passe peuvent ignorer cette introduction. Voici une introduction au principe de connexion sans mot de passe :
rsa est également appelé algorithme à clé asymétrique, qui correspond à l'algorithme à clé symétrique.
L'algorithme dit à clé symétrique est une communication entre A et B. Afin que les deux parties puissent confirmer l'identité de l'autre, A et B s'accordent sur une clé k connue des deux parties pour déterminer l'identité comme suit :
A => (mk) B A envoie m texte clair et clé K à B, et B confirme que la clé K est la même que l'accord précédent de A, et il peut alors être sûr que l'identité de A est vraie. A l’inverse, il en va de même pour la communication de B vers A.
Le cryptage asymétrique nécessite deux clés : une clé publique et une clé privée. La clé publique et la clé privée forment une paire. Si la clé publique est utilisée pour chiffrer des données, elles ne peuvent être déchiffrées qu'avec la clé privée correspondante. Si les données sont chiffrées avec une clé privée, elles ne peuvent être déchiffrées qu'avec la clé publique correspondante. Étant donné que différentes clés sont utilisées pour le cryptage et le déchiffrement, on parle de cryptage asymétrique.
Ainsi, l'opération ci-dessus partage la clé publique du serveur A avec le serveur B (hôte distant), de sorte que le serveur A n'a plus besoin de la saisie de mot de passe interactive traditionnelle pour se connecter au serveur B. Le serveur B peut le confirmer via la clé publique du serveur A. . L'authenticité du serveur A (clé privée).
[root@localhost ~]# cd ~/.ssh/ [root@localhost .ssh]# ls id_rsa id_rsa.pub known_hosts
3. Écrivez un script shell
[root@localhost ~]# vim back.sh #!/bin/sh rsync -avz -e 'ssh -p 22' root@x.x.x.x:/XXX/pub /data/
Remarque : La synchronisation des données de rsync est divisée en deux actions différentes : pull et push Avant d'écrire le script, assurez-vous de tester si la commande peut être exécutée normalement.
4. Configuration de l'exécution planifiée de Crontab (exécuter le script à 3 heures tous les jours)
À ce stade, la synchronisation planifiée est configurée.
2. Synchronisation en temps réel
Introduction à Inotify
Inotify est une fonctionnalité Linux, disponible depuis la version 2.6.13, qui surveille les opérations du système de fichiers telles que les lectures, les écritures et les créations. Inotify est très réactif, très simple à utiliser et bien plus efficace que l'interrogation chargée des tâches cron.
Commencez à configurer Inotify
Remarque : rsync doit être installé sur les serveurs A et B avant de démarrer.
1. Ajustez les paramètres du noyau inotify sur le serveur B, vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576
2. Faites en sorte que l'ajustement des paramètres du noyau inotify prenne effet immédiatement
sysctl -p
3. Installez l'outil Inotify
# 先安装扩展包源,否则inotify-tools找不到 yum install epel-release yum install inotify-tools
4. Ouvrez deux terminaux, un terminal effectue des opérations telles que la création et la suppression, et l'autre exécute l'outil Inotify-Tool. Il fonctionne normalement lors du test de l'outil Inotify-Tool
.inotifywait -mrq -e modify,create,move,delete /var/www/ inotifywait:用于持续监控,实时输出结果 inotifywatch:用于短期监控,任务完成后再出结果
5. Écrivez des scripts
vim /root/tongbu.sh
#!/bin/bash INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /root/cs" RSYNC_CMD="rsync -avz -e 'ssh - p 22' /root/cs/ root@x.x.x.x:/root/cs/ " $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if [ $(pgrep rsync | wc -l) -le 0 ] ; then $RSYNC_CMD fi done
Remarque : Faites particulièrement attention ici, ne confondez pas la relation logique, c'est le serveur B qui pousse et le serveur A.
6. Ajoutez un arrière-plan automatique au démarrage, modifiez le fichier /etc/profile et ajoutez l'instruction suivante à la dernière ligne
/bin/bash /root/tongbu.sh &
Ceci complète l'explication de la synchronisation planifiée et de la synchronisation en temps réel. L’application de différentes solutions selon différents scénarios nécessite une réponse flexible, et une attention particulière doit y être accordée. Pour les solutions de synchronisation en temps réel, le répertoire de surveillance ne doit pas être défini comme répertoire de journaux, sinon le processeur du serveur pourrait monter en flèche et tomber en panne.
En bref, la commande rsync est un outil de synchronisation et de sauvegarde de fichiers très puissant, flexible et efficace. Que ce soit dans un usage quotidien ou dans un environnement de production, il peut exercer ses avantages uniques. Grâce à l'introduction et à la pratique de cet article, je pense que tout le monde maîtrise l'utilisation et les compétences de base de cette commande. J'espère que vous pourrez mieux utiliser la commande rsync pour gérer et protéger vos données lors de votre future utilisation de Linux !
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!