Zitat von Gaby Vanhegan <g...@vanhegan.net>:
Is there a portable way to share postmapped file across machines?
I have one postfix server running OpenBSD and another running
CentOS, I want the CentOS server to provide secondary services for
for the BSD box. The OpenBSD box uses virtual delivery:
/etc/postfix/main.cf:(BSD box)
...
# What are the domains that we handle mail for?
virtual_alias_domains = hash:/etc/postfix/virtual_domains
virtual_alias_maps = hash:/etc/postfix/virtual
The two plain text versions of those files are copied over to the
CentOS server and renamed so they act as a relay reference:
/etc/postfix.main.cf (CentOS box)
...
# Relay for ourselves and other hosts
relay_domains = $mydestination, hash:/etc/postfix/relay_domains
relay_recipient_maps = hash:/etc/postfix/relay_recipients
My setup currently copies the plain text versions and creates a flag
file. A cron job then looks for the flag file and postmaps the
files if needed.
I'd like to remove this step and just copy the .db file over but
when I copy the file to the CentOS box I see this error:
Nov 12 09:01:11 dn postfix/smtpd[2346]: fatal: open database
/etc/postfix/mentok/relay_domains.db: Invalid argument
I get the same error if I try to read the contents of the .db file
using postmap directly. Is there going to be some architectural
difference between the two systems? Is there a more cross-platform
file format I could use for the databases?
The BerkeleyDB used for hash and btree are known for their always
changing file format so don't copy db files from one machine to the
other. Either use a network database like LDAP,MySQL,PostgreSQL or
stick with plain text and build them on the machine in question. You
*may* get around with using cdb but don't take it for granted.
Regards
Andreas