From: Sascha W. <sa...@ki...> - 2004-10-30 11:22:55
|
On Fri, Oct 29, 2004 at 11:55:21PM +0200 or thereabouts, Christian Tramnitz wrote: > Hello, > > I have seen a couple of similar requests/questions but no suitable answers, so > I'll start this off again: > > I want to (continously, e.g. every 10 minutes) sync two IMAP servers (both > Cyrus) against each other in a setup with less than 20 users, so performance is > not an issue but availability. > > Since I don't have the users passwords (and they have to change them frequently, > being stored as non-(easy)recoverable hash) and don't want to ask for them I > have to find ways around that: > > I tried to create a virtual account which has access to all mailboxes, but they > are accessed via "Other users/" and Cyrus doesn't like it if you use this name > literally in a write operation. Same goes for using the "cyrus" admin-user, all > mailboxes are visible under the tree "user" but the folders cannot be created on > the destination server. > > I would really like to have ONE sync configuration and have all mailboxes being > sync'ed rather than having one channel per mailbox (which then comes back to > the password problem too)... > > > Ideas anyone? Hi Christian, this request is similar to my latest problem to copy the old emailserver to an up-to-date new emailserver. I have read, asked and tried a lot, and I give my conclusion here: To gain a complete copy from the one to the other server, including all seen information for all users, assuming you have also shared folders which are stand alone (not belonging to a mailuser) and accessable by a couple of users, there is no way but to make a filesystem based copy, which needs a rebuild after the copy. Why is this so? Why can't mailsync do that? It is, because mailsync has to use the specific user credentials, so it only copies the user's mailbox and depending meta information. It only copies the user's mailboxtree and does not care about imap folders the user has in use. And furthermore, if you have shared folders created which does not belong to a user, you have no credentials to give mailsync to. This is why mailsync can't do the job. I have decieded to create a suiteable rsync procedure, including the mailboxes directories and the cyrus internal directories, too. As the versions differ, if have to run an update to the cyrus files and a reconstruct over the whole mailbox tree. I have not yet finished this, but I am looking forward to it and expect it to be functional. This includes a period of the mailservers both being out of order, to ensure a consistance of the transmitted data - which takes a long time the very first time when rsync initially copies, but afterwards, when only differences are to be transmitted, this takes much less time. Not to forget that the update and reconstruct procedure must run at cyrus being offline, too, which also takes a lot of time. In your case, this seems to be sufficient. Give it a thought and wait for other's giving their solution... cu Sascha |