Existe-t-il un outil disponible pour synchroniser les fichiers entre deux serveurs Linux ou plus immédiatement après avoir écrit le fichier sur le disque? La rsync
commande ne me convient pas à ce sujet, car si je configure rsync
en cron, le temps minimum que je peux définir est de 1 minute, mais j'en ai besoin en temps réel.
linux
files
synchronization
Sourav
la source
la source
Réponses:
Je ne l'ai pas utilisé moi-même mais je l'ai lu récemment. Il y a un démon appelé
lsyncd
qui, je suppose, fait exactement ce dont vous avez besoin.En savoir plus ICI
la source
lsyncd
utiliseinotify
& devrait être le plus rapide au niveau fs. Plus sur github.com/axkibe/lsyncd . Depuis cette page: Lsyncd surveille une interface de surveillance d'événements d'arborescence de répertoires locaux (inotify ou fsevents). Il agrège et combine les événements pendant quelques secondes, puis génère un (ou plusieurs) processus pour synchroniser les modifications. Par défaut, c'est rsync. Lsyncd est donc une solution légère de miroir en direct qui est relativement facile à installer, ne nécessitant pas de nouveaux systèmes de fichiers ou blocs de périphériques et n'entrave pas les performances du système de fichiers local.Inotify-tools
Fournir une interface à
inotify
, composée de:inotifywait
Cette commande bloque simplement les événements inotify, ce qui la rend appropriée pour une utilisation dans des scripts shell. Il peut regarder n'importe quel ensemble de fichiers et de répertoires et peut récursivement regarder des arborescences de répertoires entières.
inotifywatch
Cette commande collecte les statistiques d'utilisation du système de fichiers et génère le nombre de chaque événement inotify.
la source
Synchronisation de fichiers en temps réel entre plusieurs serveurs en mode multi maître
Il existe un bon outil appelé
lsyncd
pour synchroniser les fichiers entre plusieurs serveurs en temps réel. Ici, j'ai essayé avec deux serveurs.Hôtes: Server1 et Server2
Système d'exploitation utilisé: CentOS 7
Installez les packages ci-dessous sur les deux serveurs.
générer la clé ssh dans les deux serveurs et l'ajouter au
authorized_keys
fichier. [ajouter la clé publique de server1 au serveur2authorized_keys
et la clé publique de server2 auauthorized_keys
fichier de server1 ]Configuration de Server1
Ouvrez
/etc/lsyncd.conf
et commentez la configuration par défaut en utilisant--
au début de la ligne et ajoutez la configuration ci-dessous au fichier.Modifiez l'IP cible en
target
paramètre.Vous pouvez changer le
delay
paramètre selon votre condition. Ici, il est réglé sur 1 seconde.Créez maintenant le répertoire des journaux.
Activez le
lsyncd
service pour démarrer automatiquement.Démarrez le service.
Configuration de Server2
Suivez la même configuration que Server1 et changez l'
target
IP.Maintenant, la synchronisation est définie.
Vous pouvez vérifier l'activité à partir de
tailf /var/log/lsyncd/lsyncd.log
Merci à MelBurslan pour sa suggestion.
la source
La synchronisation peut être une option. C'est extrêmement rapide, le transfert est crypté et il existe des clients pour plusieurs plates-formes. Il utilise "inotify" pour synchroniser instantanément les fichiers modifiés.
la source
Vous auriez besoin d'aborder cela avec une solution de type système de fichiers en cluster - une simple synchronisation entre les deux machines ne vous donnera pas de réponse en temps réel.
la source
"SIOS Protection Suite pour Linux" peut offrir cela, sur AWS.
http://www.linuxclustering.net/2016/03/21/step-by-step-how-to-configure-a-linux-failover-cluster-in-amazon-ec2-without-shared-storage-amazon- aws-sanless-cluster / # InstallConfigureCluster
la source