Synchronisation bidirectionnelle des mbox entre 2 systèmes

Synchronisation bidirectionnelle des mbox entre 2 systèmes - Logiciels - Linux et OS Alternatifs

Marsh Posté le 11-04-2009 à 00:00:27    

Bonjour à tous !
 
    Je dispose de 2 PC sous Debian en mode console. Chacun des PCs a un MTA qui ne fonctionne qu'en local et les emails sont lus via le programme mail. Un programme, installé sur chacun d'eux, surveille leur bon fonctionnement et j'ai un rapport journalier, envoyé par email sur le compte root de l'ordinateur concerné. Pour des raisons obscures trop longues à détailler, je voudrais synchroniser les mbox des comptes root de la façon suivante:
 
-le serveur 1 a une mbox A
-le serveur 2 a une mbox B
 
Je voudrais, qu'après synchronisation (toutes les minutes par exemple), que les 2 serveurs aient une mbox contenant A+B (chaque serveur aura une mbox contenant tous les emails envoyés aux comptes root respectifs des 2 serveurs).
 
Comment puis-je faire celà ?
 
Merci d'avance !
RedVivi

Reply

Marsh Posté le 11-04-2009 à 00:00:27   

Reply

Marsh Posté le 11-04-2009 à 00:10:27    

J'opterais déja pour l'utilisation de maildir au lieu du format mbox.
dans le cas du mbox tu as tous les mails dans *un* fichier, ce qui risque d'être un peu chiant a synchroniser.
Dans le cas d'une maildir, chaque mail est dans un fichier donné; du coup la synchronisation devient immédiatement plus simple. en optant par exemple pour unison.


---------------
Intermittent du GNU
Reply

Marsh Posté le 11-04-2009 à 00:19:45    

Merci pour ta rép ;-).
 
Le fait de changer de mbox à maildir sera complètement transparent pour les programmes tels que mail par exemple (maildir est aussi bien supporté que mbox dans le monde linux ?) ?
 
Si j'opte pour cette solution, il me suffit juste de changer les paramètres de mon MTA et d'installer unison et tout va bien dans le meilleur des mondes si j'ai bien compris ?

Reply

Marsh Posté le 11-04-2009 à 02:25:54    

redvivi a écrit :

Merci pour ta rép ;-).
 
Le fait de changer de mbox à maildir sera complètement transparent pour les programmes tels que mail par exemple (maildir est aussi bien supporté que mbox dans le monde linux ?) ?


Rapidement mbox vs maildir:
http://www.courier-mta.org/mbox-vs-maildir/
http://cr.yp.to/proto/maildir.html
Concernant le support de maildir par mailx aucune idée :o
Ceci étant dit j'aurais plutôt opté pour un client moderne comme mutt pour ce genre de chose :D
 

redvivi a écrit :


Si j'opte pour cette solution, il me suffit juste de changer les paramètres de mon MTA et d'installer unison et tout va bien dans le meilleur des mondes si j'ai bien compris ?


Hum, oui on va dire :)


---------------
Intermittent du GNU
Reply

Marsh Posté le 11-04-2009 à 14:30:43    

redvivi a écrit :

Le fait de changer de mbox à maildir sera complètement transparent pour les programmes tels que mail par exemple (maildir est aussi bien supporté que mbox dans le monde linux ?) ?

 

Non, oui. Mais je ne pense pas que mailx supporte maildir par défaut, il faudra tricher en passant par un MDA.

 

En faisant plus simple, tu peux faire deux mbox différentes, et synchroniser les fichiers entre eux, plutot que de tenter une fusion hasardeuse.

 
Citation :

Si j'opte pour cette solution, il me suffit juste de changer les paramètres de mon MTA et d'installer unison et tout va bien dans le meilleur des mondes si j'ai bien compris ?

 

Pas vraiment, il faudra se poser ensuite la question de comment la synchronisation va se faire (en push ou en pull?).

 

Ce qui reviendrait à faire, à peu de chose près, un serveur "maitre" et un serveur "esclave", genre aliasing mail du pauvre, mais sans utiliser de MTA.

Message cité 2 fois
Message édité par Gf4x3443 le 11-04-2009 à 14:31:40

---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 11-04-2009 à 15:54:27    

Gf4x3443 a écrit :

 

Non, oui. Mais je ne pense pas que mailx supporte maildir par défaut, il faudra tricher en passant par un MDA.

 

En faisant plus simple, tu peux faire deux mbox différentes, et synchroniser les fichiers entre eux, plutot que de tenter une fusion hasardeuse.


Le plus simple à mon avis est d'installer mutt au lieu de faire 2 mailboxes (d'ailleurs en passant, ce n'est pas possible de supprimer mailx et d'utiliser la commande mail comme un alias de mutt ? A première vue je le sens moyen....)

 
Gf4x3443 a écrit :


Ce qui reviendrait à faire, à peu de chose près, un serveur "maitre" et un serveur "esclave"

 

Voilà la grande question, je voudrais que ce soit un transfert d'égal à égal. Si une modification a lieu sur le serveur A (ajout, suppression ou autre), il faut qu'elle soit propagée sur B et inversement.

 


Message cité 1 fois
Message édité par redvivi le 11-04-2009 à 15:55:36
Reply

Marsh Posté le 11-04-2009 à 16:39:49    

redvivi a écrit :


Le plus simple à mon avis est d'installer mutt au lieu de faire 2 mailboxes (d'ailleurs en passant, ce n'est pas possible de supprimer mailx et d'utiliser la commande mail comme un alias de mutt ? A première vue je le sens moyen....)

 

Ahhh si c'est possible d'utiliser mutt, certes, c'est mieux :)

 

Mais je ne le sens pas non plus pour utiliser mail comme alias de mutt. Rien que le synopsis de leurs pages man ne correspond pas, donc pour les usages en ligne de commande, j'ai des doutes.

 
redvivi a écrit :


Voilà la grande question, je voudrais que ce soit un transfert d'égal à égal. Si une modification a lieu sur le serveur A (ajout, suppression ou autre), il faut qu'elle soit propagée sur B et inversement.

 

C'est vraiment la fusion qui peut poser problème, plus que le transfert. Tant que les transferts ne seront pas terminés dans les deux sens, les BAL seront incohérentes, que ca soit pour mailbox et maildir. Exemple typique: j'ai un client a qui lit des mails sur A, et un client b qui lit les mails sur B. Je lance une synchro, et dans le même temps, a supprime un mail. Question:
- comment B va faire pour savoir que la dernière opération effectuée est bien la suppression du mail par a, et non pas un rajout dudit mail par b?

 

rsync, unison, se basent sur des timestamp pour comparer des fichiers. Dans le cas d'un fichier supprimé (le cas de maildir) il ne pourra pas dire qui devra prendre précédence sur qui, c'est pourquoi ces outils ont toujours une décision par défaut (généralement, la source fait référence). C'est moins problèmatique avec mailbox, sauf si les deux parties suppriment un mail différent: ca sera la dernière suppression qui fera foi (la plus récente), et l'autre va voir rapparaître son mail sans raison.

 

Je vois deux possibilités:
- faire du mailbox ou du maildir, est égal. Maildir te simplifiera la chose pour la fusion cela dit (c'est une bête copie). Mais pendant la synchro, il faudra verrouiller l'accès aux BALs. Très difficile à le garantir au niveau d'un système entier sans effet de bord.
- faire un montage NFS en maildir pour les deux. Même si le contentieux est moindre que pour du mailbox (bien qu'il y en a un infime, hélas), le montage en réseau aidera au niveau des opérations sur le fs. Ca introduira une hiérarchie cela dit (serveur <> client NFS).


Message édité par Gf4x3443 le 11-04-2009 à 16:42:39

---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 11-04-2009 à 16:50:49    

Merci pour ta réponse très instructive ! A la lumière de ce que tu as dit et en cherchant un peu, j'ai trouvé ceci: http://pwet.fr/man/linux/commandes/maildirsync

 

Quel est ton avis d'expert :sol: par rapport à ce programme au vue de la page de man ?


Message édité par redvivi le 11-04-2009 à 16:51:37
Reply

Marsh Posté le 11-04-2009 à 17:25:08    

Je connaissais pas.
 
Il garde les états entre les boites dans un fichier on dirait (d'après la page man), ce qui fait que mes remarques vis à vis des fichiers supprimés ne s'applique pas vraiment (il doit bien y avoir des cas tordus, mais ca va devenir anecdotique).
 
Y'a toujours la fenêtre de transition lors du transfert qui existe (forcément, je vois pas comment il aurait pu tout faire d'un coup sans executer une commande similaire de l'autre coté), mais si c'est fait régulièrement à que les machines ne dérivent pas trop, c'est ok.
 
Donc à essayer (même si j'ai pas testé).


---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 11-04-2009 à 18:01:56    

Ca serait pas plus simple d'utiliser des aliases sur tes deux serveurs ?
 
Genre :
- sur serveur A
root: toto,toto@serverB
 
- sur serveur B
root: toto,toto@serverA
 


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 11-04-2009 à 18:01:56   

Reply

Marsh Posté le 11-04-2009 à 18:06:28    

Le problème c'est que si je supprime un mail par exemple sur le serveur A, la modification ne sera pas répercutée sur l'autre serveur (si je comprends bien)

Reply

Marsh Posté le 11-04-2009 à 18:17:14    

En effet.


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 11-04-2009 à 21:17:29    

Gf4x3443 a écrit :


 
Pas vraiment, il faudra se poser ensuite la question de comment la synchronisation va se faire (en push ou en pull?).
 
Ce qui reviendrait à faire, à peu de chose près, un serveur "maitre" et un serveur "esclave", genre aliasing mail du pauvre, mais sans utiliser de MTA.


c'est pour cela que je lui est proposé unison en fait pour la synchronisation en passant par le biais de maildir ;)
Les notions de maître et esclave étant moins importante d'une manière générale ;)
(d'ailleurs normalement il ne devrait y avoir aucun souci vu que les mails auront normalement un dénominateur différent sauf a imaginer que le même nom de domaine/machine soit utilisées)


---------------
Intermittent du GNU
Reply

Marsh Posté le 12-04-2009 à 10:33:42    

Effectivement maildirsync fonctionne bien ! J'ai une dernière petite question....comme je suis passé à Maildir on dirait que Bash ne détecte plus les nouveaux mails quand je me connecte sur la console, ça se corrige ?

Reply

Marsh Posté le 12-04-2009 à 12:03:29    

Tu as mis la variable d'environnement MAIL à jour, si le chemin à changé?

 
mikala a écrit :


(d'ailleurs normalement il ne devrait y avoir aucun souci vu que les mails auront normalement un dénominateur différent sauf a imaginer que le même nom de domaine/machine soit utilisées)

 

Ah oui c'est vrai, y'a le nom du serveur qui est rajouté, bien vu.


Message édité par Gf4x3443 le 12-04-2009 à 12:04:42

---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 12-04-2009 à 19:47:38    

Justement je n'ai pas trouvé cette variable ! Aucune trace dans .bashrc, profile ou bash.bashrc


Message édité par redvivi le 12-04-2009 à 20:18:28
Reply

Marsh Posté le 13-04-2009 à 00:28:42    

C'est qu'elle n'y est pas, et donc il prend une valeur par défaut. Essaie du genre:
 
export MAIL="$HOME/mon_chemin_vers_maildir"


---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Marsh Posté le 27-04-2009 à 16:00:29    

J'ai ajouté cette valeur, mais maintenant j'ai un comportement curieux avec bash:
 
-Bash ne me prévient pas si j'ai des nouveaux mails au moment où je me log (même pas un "No mail.", rien).
-Bash me prévient uniquement des nouveaux emails reçus en cours de session.
 
Voyez vous ce qui cloche ?

Reply

Marsh Posté le 03-05-2009 à 12:52:10    

up? :sarcastic:


Message édité par redvivi le 03-05-2009 à 12:52:23
Reply

Marsh Posté le 03-05-2009 à 16:02:38    

A mon avis, bash ne fait les vérifications que quand il se lance, et vu que la variable MAIL n'est mise à la bonne valeur qu'après, il ne fait pas les vérifications.
 
Amha, il faudrait faire le check soit même à la main, ou voir dans le code de bash comment il le fait (quitte à changer la valeur par défaut).


---------------
Petit guide Kerberos pour l'administrateur pressé
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed