--- dspam.cron.orig 2007-03-30 11:12:33 +0000 +++ dspam.cron 2007-03-30 11:27:48 +0000 @@ -1,31 +1,28 @@ -#!/bin/bash +#!/bin/sh # Remove old signatures and unimportant tokens from the DSPAM database for foo in awk head tail cut sed do - DSPAM_Check_App="$(${foo} --version 2>&1)" - if [[ "${DSPAM_Check_App/ *}" == "bash:" ]] + if ! which ${foo} >/dev/null 2>&1 then echo "Command ${foo} not found." exit 1 fi done -DSPAM_HOMEDIR="$(getent passwd dspam | awk -F : '{print $6}')" -[[ ! -d "${DSPAM_HOMEDIR}" ]] && exit 2 -DSPAM_DATA_FILES=( "${DSPAM_HOMEDIR}"/*.data ) -if [ ! -f "${DSPAM_DATA_FILES[0]}" ] +DSPAM_getent_home="$(getent passwd dspam | awk -F : '{print $6}')" +[ ! -d "${DSPAM_HOMEDIR}" ] && exit 2 +if ! ls "${DSPAM_getent_home}"/*.data >/dev/null 2>&1 && \ + ls /etc/mail/dspam/*.data >/dev/null 2>&1 then - DSPAM_DATA_FILES=( /etc/mail/dspam/*.data ) - if [ -f "${DSPAM_DATA_FILES[0]}" ] - then - DSPAM_HOMEDIR="/etc/mail/dspam" - fi + DSPAM_HOMEDIR="/etc/mail/dspam" +else + DSPAM_HOMEDIR="$DSPAM_getent_home" fi -[[ ! -f "${DSPAM_HOMEDIR}/dspam.conf" ]] && exit 2 +[ ! -f "${DSPAM_HOMEDIR}/dspam.conf" ] && exit 2 DSPAM_SPOOLDIR="$(grep ^Home "${DSPAM_HOMEDIR}/dspam.conf" | cut -d' ' -f2)" -if [[ -d "${DSPAM_SPOOLDIR}" ]] +if [ -d "${DSPAM_SPOOLDIR}" ] then cd / su -s /bin/sh -c "/usr/bin/dspam_logrotate -a 30 -d ${DSPAM_SPOOLDIR}" dspam @@ -33,9 +30,9 @@ echo 'Spool directory not configured. Please set "Home" in your dspam.conf.' fi -if [[ -f "${DSPAM_HOMEDIR}/mysql.data" ]] +if [ -f "${DSPAM_HOMEDIR}/mysql.data" ] then - [[ ! -f "/usr/bin/mysql_config" ]] && exit 4 + [ ! -f "/usr/bin/mysql_config" ] && exit 4 DSPAM_MySQL_PURGE_SQL="" DSPAM_MySQL_VER="$(mysql_config --version | sed "s:\([^0-9\.]*\)::g")" DSPAM_MySQL_MAJOR="$(echo "${DSPAM_MySQL_VER}" | cut -d. -f1)" @@ -44,17 +41,17 @@ DSPAM_MySQL_INT="$((DSPAM_MySQL_MAJOR * 65536 + DSPAM_MySQL_MINOR * 256 + DSPAM_MySQL_MICRO))" # For MySQL >= 4.1 use the new purge script - if [[ "${DSPAM_MySQL_INT}" -ge "262400" ]] + if [ "${DSPAM_MySQL_INT}" -ge "262400" ] then - [[ -f "${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql" - [[ -f "${DSPAM_HOMEDIR}/mysql_purge-4.1.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge-4.1.sql" + [ -f "${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql" + [ -f "${DSPAM_HOMEDIR}/mysql_purge-4.1.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge-4.1.sql" else - [[ -f "${DSPAM_HOMEDIR}/config/mysql_purge.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge.sql" - [[ -f "${DSPAM_HOMEDIR}/mysql_purge.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge.sql" + [ -f "${DSPAM_HOMEDIR}/config/mysql_purge.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge.sql" + [ -f "${DSPAM_HOMEDIR}/mysql_purge.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge.sql" fi - [[ "${DSPAM_MySQL_PURGE_SQL}" == "" ]] && exit 3 - [[ ! -f "/usr/bin/mysql" ]] && exit 4 + [ -z "${DSPAM_MySQL_PURGE_SQL}" ] && exit 3 + [ ! -f "/usr/bin/mysql" ] && exit 4 DSPAM_MySQL_HOST="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 1|tail -n 1)" DSPAM_MySQL_PORT="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 2|tail -n 1)" DSPAM_MySQL_USER="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 3|tail -n 1)" @@ -67,13 +64,13 @@ (/usr/bin/mysql -u ${DSPAM_MySQL_USER} -p"${DSPAM_MySQL_PWD}" ${DSPAM_MySQL_DB} -e "OPTIMIZE TABLE ${foo};") 1>/dev/null 2>&1 done exit ${MYRC} -elif [[ -f "${DSPAM_HOMEDIR}/pgsql.data" ]] +elif [ -f "${DSPAM_HOMEDIR}/pgsql.data" ] then DSPAM_PgSQL_PURGE_SQL="" - [[ -f "${DSPAM_HOMEDIR}/config/pgsql_purge.sql" ]] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/pgsql_purge.sql" - [[ -f "${DSPAM_HOMEDIR}/pgsql_purge.sql" ]] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/pgsql_purge.sql" - [[ "${DSPAM_PgSQL_PURGE_SQL}" == "" ]] && exit 3 - [[ ! -f "/usr/bin/psql" ]] && exit 4 + [ -f "${DSPAM_HOMEDIR}/config/pgsql_purge.sql" ] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/pgsql_purge.sql" + [ -f "${DSPAM_HOMEDIR}/pgsql_purge.sql" ] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/pgsql_purge.sql" + [ "${DSPAM_PgSQL_PURGE_SQL}" == "" ] && exit 3 + [ ! -f "/usr/bin/psql" ] && exit 4 DSPAM_PgSQL_HOST="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 1|tail -n 1)" DSPAM_PgSQL_PORT="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 2|tail -n 1)" DSPAM_PgSQL_USER="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 3|tail -n 1)" @@ -81,13 +78,13 @@ DSPAM_PgSQL_DB="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 5|tail -n 1)" (PGUSER=${DSPAM_PgSQL_USER} PGPASSWORD=${DSPAM_PgSQL_PWD} /usr/bin/psql -U ${DSPAM_PgSQL_USER} -d ${DSPAM_PgSQL_DB} -p ${DSPAM_PgSQL_PORT} -h ${DSPAM_PgSQL_HOST} -f ${DSPAM_PgSQL_PURGE_SQL}) 1>/dev/null 2>&1 exit $? -elif [[ -f "${DSPAM_HOMEDIR}/oracle.data" ]] +elif [ -f "${DSPAM_HOMEDIR}/oracle.data" ] then DSPAM_Oracle_PURGE_SQL="" - [[ -f "${DSPAM_HOMEDIR}/config/ora_purge.sql" ]] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/config/ora_purge.sql" - [[ -f "${DSPAM_HOMEDIR}/ora_purge.sql" ]] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/ora_purge.sql" - [[ "${DSPAM_Oracle_PURGE_SQL}" == "" ]] && exit 3 - [[ ! -f "/usr/bin/sqlplus" ]] && exit 4 + [ -f "${DSPAM_HOMEDIR}/config/ora_purge.sql" ] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/config/ora_purge.sql" + [ -f "${DSPAM_HOMEDIR}/ora_purge.sql" ] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/ora_purge.sql" + [ "${DSPAM_Oracle_PURGE_SQL}" == "" ] && exit 3 + [ ! -f "/usr/bin/sqlplus" ] && exit 4 DSPAM_Oracle_DBLINK="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 1|tail -n 1)" DSPAM_Oracle_USER="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 2|tail -n 1)" DSPAM_Oracle_PWD="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 3|tail -n 1)" @@ -95,7 +92,7 @@ (/usr/bin/sqlplus -s ${DSPAM_Oracle_USER}/${DSPAM_Oracle_PWD} @${DSPAM_Oracle_PURGE_SQL}) 1>/dev/null 2>&1 exit $? else - [[ ! -f "/usr/bin/dspam_clean" ]] && exit 4 + [ ! -f "/usr/bin/dspam_clean" ] && exit 4 /usr/bin/dspam_clean -s -p -u 1>/dev/null 2>&1 exit $? fi