1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#!/bin/sh
#
# Clean up the mysql databases
DSPAMCONF=/etc/dspam/dspam.conf
MYSQLCONF=/etc/dspam/dspam.d/mysql.conf
PURGE=/usr/share/doc/libdspam7-drv-mysql/purge-4.1.sql
MYSQLCONF_PASSWD=/var/run/libdspam7-drv-mysql.cron.passwd
if grep -q "^StorageDriver.*mysql_drv.so" $DSPAMCONF; then
if [ -x /usr/bin/mysql ]; then
MYSQL_USER="`grep "^MySQLUser" $MYSQLCONF | awk '{print $2}'`"
MYSQL_PASS="`grep "^MySQLPass" $MYSQLCONF | awk '{print $2}'`"
MYSQL_DB="`grep "^MySQLDb" $MYSQLCONF | awk '{print $2}'`"
MYSQL_HOST="`grep "^MySQLServer" $MYSQLCONF | awk '{print $2}'`"
UMASK_OLD="`umask`"
umask 077
[ -e "$MYSQLCONF_PASSWD" ] && rm "$MYSQLCONF_PASSWD"
echo -e "[client]\npassword=$MYSQL_PASS" > "$MYSQLCONF_PASSWD"
umask "$UMASK_OLD"
# If host is empty or starting with a / assume it's localhost.
if [ -z "$MYSQL_HOST" ] || \
[ ` echo "${MYSQL_HOST}" | cut -c1 ` = "/" ]; then
/usr/bin/mysql --defaults-extra-file=$MYSQLCONF_PASSWD \
--user=$MYSQL_USER $MYSQL_DB < $PURGE
else
if echo "$MYSQL_HOST" | grep "^/" > /dev/null 2>&1 ; then
# Assume it is a socket:
/usr/bin/mysql --defaults-extra-file=$MYSQLCONF_PASSWD --socket=$MYSQL_HOST --user=$MYSQL_USER < $PURGE
else
/usr/bin/mysql --defaults-extra-file=$MYSQLCONF_PASSWD --host=$MYSQL_HOST --user=$MYSQL_USER < $PURGE
fi
fi
rm "$MYSQLCONF_PASSWD"
fi
fi
exit 0
|