Partager un exemple de didacticiel de synchronisation en temps réel rsync + inotify

PHP中文网
Libérer: 2017-06-20 11:57:30
original
1459 Les gens l'ont consulté

1.rsync

Par rapport aux méthodes de sauvegarde traditionnelles cp, tar, rsync présente les avantages d'une haute sécurité, d'une sauvegarde rapide et prend en charge la sauvegarde incrémentielle grâce à rsync, il peut résoudre les besoins de sauvegarde de données qui ne nécessitent pas de temps réel élevé. performances, telles que sauvegarder régulièrement les données du serveur de fichiers sur des serveurs distants, effectuer régulièrement la mise en miroir des données sur les disques locaux, etc.

À mesure que l'échelle des systèmes d'application continue de croître, des exigences plus élevées sont mises en avant en matière de sécurité et de fiabilité des données. rsync est également progressivement exposée dans les entreprises haut de gamme. il y a de nombreuses lacunes. Tout d'abord, lorsque rsync se synchronise en temps réel, tous les fichiers doivent être analysés pour comparaison et transmission différentielle. Si le nombre de fichiers atteint des millions, voire des dizaines de millions, l'analyse de tous les fichiers prend beaucoup de temps et seule une petite partie d'entre eux est modifiée, ce qui est très inefficace. Deuxièmement, rsync ne peut pas surveiller et synchroniser les données en temps réel. Bien qu'il puisse effectuer une synchronisation de démarrage via le démon linux, il y aura un décalage horaire entre les deux actions de démarrage, ce qui entraînera des incohérences entre le serveur et le client, rendant impossible la récupération complète des données dans le en cas d'échec de l'application. Sur la base des raisons ci-dessus, rsync+inotify est apparu !

2.inotify (surveillance)

inotify est une surveillance puissante, fine et asynchrone des événements du système de fichiers mécanisme. Grâce à inotify, vous pouvez surveiller divers événements subtils tels que l'ajout, la suppression, la modification et le mouvement dans le système de fichiers. À l'aide de cette interface du noyau, un logiciel tiers peut surveiller divers événements mineurs. dans le système de fichiers. La situation change, et inotify-tools est un tel logiciel tiers.

1. Configuration du serveur (il suffit d'installer rsync)

Partager sur /tmp/ :

1.Ajouter un utilisateur virtueluseradd rsync -s /sbin/nologin

chown -R rsync.rsync /tmp/

2.Configurationrsyncd.conf Fichier de configuration

vim rsyncd.conf

#rsync_config_______________start

#rsyncd.conf start##

uid = rsync (utilisateur)

gid = rsync (utilisateur)

utilisez chroot = no (pour éviter les problèmes de sécurité)

max connexions = 200 (combien de clients peuvent se connecter à mon serveur de sauvegarde)

timeout = 300 (timeout, déconnexion après aucune action pendant une longue période)

pid file = /var/run/rsyncd.pid (numéro de processus, mettre le numéro de processus dans ce fichier)

lock file = /var/run/rsync.lock (équivalent à la notion de "lock", la notion de verrouiller la porte lorsqu'on va aux toilettes)

fichier journal = /var/log/rsyncd.log (une erreur s'est produite, vous pouvez consulter le fichier journal)

[tmp] ( module)

path = /tmp/(path)

ignorer les erreurs

lecture seule = false (lecture seule signifie faux, lisible et inscriptible)

list = false (liste non autorisée)

hosts Allow = 10.0. 0.0/24 (hôtes autorisés)

hosts deny = 0.0.0.0/32 (hôtes refusés)

utilisateurs auth = rsync_backup (prise en charge virtuelle utilisateurs)

secrets file = /etc/rsync.password (fichier de mot de passe correspondant de l'utilisateur)

#rsync_config____________end

3. Créez un fichier de mots de passe

echo "rsync_backup:123456" >/etc/rsync.password

Tous les fichiers de mots de passe ont 600autorisationschmod 600 /etc/rsync.password

4 .rsync --daemon démon démarrage du mode

5.Ajoutez rsync --daemon à /etc/rc.local

echo "/ usr/bin/rsync --daemom” >>/etc/rc.local

2.

Installez rsync et inotify

1.

Installation rsync (yum peut être installé)

Créer un fichier d'authentification par mot de passe

echo « 123456 » >/etc/rsync.password

Seul le mot de passe requis

Définir les autorisations600 chmod 600 /etc/rsync.password

3.

Installer inotify :

cd /home/cai/tools/

wget

54 tar >

57 ./configure --prefix=/usr/local/inotify-tools-3.14

58 make && make install

59 yum install -y gcc

60 ./configure --prefix=/usr/local/inotify-tools-3.14

61 make && make install

62 cd /usr/local/inotify-tools-3.14/

63 ls

64 ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify

4.

Les scripts sont placés sous

/server/scripts

vim /server/scripts /rsync.sh

#!/bin/sh

host=192.168.76.129

src=/tmp/

des=tmp

user=rsync_backup

/usr /local/inotify/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f%e' -e modifier, supprimer, créer, attrib $src |

pendant la lecture des fichiers

faire

/usr/bin/rsync -avz - -delete $src $user@$host::$des --password-file=/etc/rsync.password

echo "${files} a été rsynchronisé" >> /var/log/rsyncd.log 2>&1

terminé

sortie o

~       

et donnez

764

autorisations

Script de test :

sh -x /server/scripts/rsync.sh

Exécutez le script :

sh /server/scripts/rsync.sh &

Mettez le script

rsync.sh

dans l'entrée de démarrage :

echo “/tmp/rsync.sh” >>/etc / rc.local

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!

Étiquettes associées:
source:php.cn
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