Maison > Tutoriel système > Linux > La sauvegarde est aussi simple que cela : apprenez à utiliser facilement la commande Linux rsync

La sauvegarde est aussi simple que cela : apprenez à utiliser facilement la commande Linux rsync

WBOY
Libérer: 2024-02-13 09:33:02
avant
1210 Les gens l'ont consulté

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.

备份就是那么简单:教你轻松使用 Linux rsync 命令

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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/
Copier après la connexion

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

备份就是那么简单:教你轻松使用 Linux rsync 命令

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
Copier après la connexion

2. Faites en sorte que l'ajustement des paramètres du noyau inotify prenne effet immédiatement

sysctl -p
Copier après la connexion

3. Installez l'outil Inotify

# 先安装扩展包源,否则inotify-tools找不到
yum install epel-release
yum install inotify-tools 
Copier après la connexion

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:用于短期监控,任务完成后再出结果
Copier après la connexion

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
Copier après la connexion

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 &
Copier après la connexion

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!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal