On Jun 24, 2005, at 09:51 AM, Gordon Thagard wrote:
websrvr wrote:
On Jun 23, 2005, at 04:47 PM, Gordon Thagard wrote:
Timo Schoeler wrote:
thus Gordon Thagard spake:
Solaris 9
Postfix 2.2.2
Cyrus-SASL 2.1.20
Cyrus-IMAP 2.2.12
Hi, I have Cyrus-IMAP running on a box but I'm getting some
errors. Can
someone please tell me which direction to go with these symptoms?
Jun 23 14:07:16 horus master[29531]: [ID 392559 local6.debug]
about to
exec /opt/cyrus-imap/bin/ctl_cyrusdb
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 702911
local6.notice]
checkpointing cyrus databases
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 854764 local6.error]
DBERROR: error listing log files: Permission denied
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 686478 local6.error]
DBERROR: archive /var/imap/db: cyrusdb error
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 578205 local6.debug]
archiving database file: /var/imap/annotations.db
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 854764 local6.error]
DBERROR: error listing log files: Permission denied
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 686478 local6.error]
DBERROR: archive /var/imap/db: cyrusdb error
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 578205 local6.debug]
archiving database file: /var/imap/mailboxes.db
Jun 23 14:07:16 horus ctl_cyrusdb[29531]: [ID 127214
local6.notice] done
checkpointing cyrus databases
Jun 23 14:07:16 horus master[17383]: [ID 310780 local6.debug]
process
29531 exited, status 0
The master process is running as user 'cyrus' and ownership of
/var/imap/* is set to 'cyrus:mail'. Also, I'm using pwcheck as
it was
the only way I could get Postfix to authenticate correctly. Sadly,
Cyrus-IMAP doesn't like this and is giving me unknown user
errors. I
want it to authenticate via NIS.
Any and all assistance is greatly appreciated.
Cheers,
Gordon Thagard
This may help...
#!/bin/sh
#
# /usr/sbin/reconstruct_imap_db
#
# Configuration Variables
the_imap=/var/imap
the_user="cyrus"
the_group="mail"
recon_path=/usr/bin/cyrus/bin/reconstruct
case $TERM in
# for the most important terminal types we directly know
the sequences
xterm|xterm*|vt220|vt220*)
bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }'
</ dev/null 2>/dev/null`
norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </
dev/ null 2>/dev/null`
;;
vt100|vt100*|cygwin)
bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49,
109, 0, 0); }' </dev/null 2>/dev/null`
norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0,
0); }' </dev/null 2>/dev/null`
;;
esac
if [ `whoami` != "root" ]; then
cat <<X
$0 must be run as ${bold}root${norm} user.
X
exit
fi
do_cmd=false;
while test $# -gt 0; do
if test "$1" = "--force" -o "$1" = "-f"; then
do_cmd=true
fi
shift
done
if test "$do_cmd" != true; then
cat <<X
use "${bold}$0 --force${norm}" or "${bold}$0 -f${norm}" to
perform the repair.
X
else
cat <<X
${bold}Reconstructing${norm} the mail database.
X
echo "Stoping mail"
serveradmin stop mail
if [ -d /var/imap.old ]; then rm -rf /var/imap.old; fi
echo "Moving database: ${the_imap} -> ${the_imap}.old"
mv /var/imap /var/imap.old
echo "Making new database: -> ${the_imap}"
mkdir /var/imap
/usr/bin/cyrus/tools/mkimap
echo "Fixing permissions: -> "
chown -R ${the_user}:${the_user} /var/imap
echo "Reconstructing the database: -> ${the_imap}"
sudo -u ${the_user} ${recon_path} -i
echo "Starting mail"
serveradmin start mail
cat <<X
If you see no errors it completed succcessfully.
X
fi
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
Hi, what is this serveradmin? I didn't see it in my source dir or
in my bin dir.
---
It's how I start and stop all the mail services.
All this script does is stop/start services by predefining the
dependancies.
When I stop mail I stop postfix and imap.
Here is a reduced version so you can see roll your own serveradmin.
#!/bin/sh
#
# /usr/sbin/serveradmin
#
. /etc/rc.common
case $TERM in
# for the most important terminal types we directly know the
sequences
xterm|xterm*|vt220|vt220*)
bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </
dev/null 2>/dev/null`
norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/
null 2>/dev/null`
;;
vt100|vt100*|cygwin)
bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109,
0, 0); }' </dev/null 2>/dev/null`
norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0,
0); }' </dev/null 2>/dev/null`
;;
esac
if [ `whoami` != "root" ]; then
cat <<X
$0 must be run as ${bold}root${norm} user.
X
exit
fi
service_command="$1"
case $service_command in
# Available commands
start)
command="start"
;;
stop)
command="stop"
;;
restart)
command="restart"
;;
*)
printf "\"${bold}${service_command}${norm}\" is an invalid
command.\n"
exit
;;
esac
service_name="$2"
case $service_name in
# Available services - mail, apache, spamav
#
# requires entries in /etc/hostconfig with -YES- or -NO-
(allowed/not allowed to run)
#
# WEBSERVER=-YES-
# AMAVISCLAMAV=-YES-
#
# use apache as a template and add the commands to stop mail
servicess
#
mail)
# your stuff goes here
;;
apache)
StartService () {
if [ "${WEBSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting Apache"
/usr/sbin/apachectl start
else
StopService
NoService
fi
}
StopService () {
ConsoleMessage "Stoping Apache"
/usr/sbin/apachectl stop
}
RestartService () {
if [ "${WEBSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Reloading Apache"
/usr/sbin/apachectl reload
else
StopService
NoService
fi
}
NoService () {
ConsoleMessage "Service is disabled in /etc/hostconfig:
Unable to start."
}
RunService "$service_command"
;;
spamav)
StartService () {
if [ "${AMAVISCLAMAV:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting AMAVIS-CLAMAV"
/usr/local/bin/freshclam -d
/usr/local/sbin/clamd
su clamav -c /usr/local/bin/amavisd
else
NoService
fi
}
StopService () {
ConsoleMessage "Stoping AMAVIS-CLAMAV"
if [ -f /var/clamav/clamd.pid ]; then kill -HUP $
(head -1 /var/clamav/clamd.pid); fi
if [ -f /var/clamav/freshclam.pid ]; then kill -HUP $
(head -1 /var/clamav/freshclam.pid); fi
if [ -f /var/amavis/amavisd.pid ]; then kill -HUP $
(head -1 /var/amavis/amavisd.pid); fi
}
RestartService () {
if [ "${AMAVISCLAMAV:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Reloading AMAVIS-CLAMAV"
StopService
StartService
else
StopService
NoService
fi
}
NoService () {
ConsoleMessage "Service is disabled in /etc/hostconfig:
Unable to start."
}
RunService "$service_command"
;;
*)
printf "\"${bold}${service_name}${norm}\" is an invalid
service\n"
exit
;;
esac
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html