Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 172781
Collapse All | Expand All

(-)dspam.cron.orig (-34 / +31 lines)
Lines 1-31 Link Here
1
#!/bin/bash
1
#!/bin/sh
2
# Remove old signatures and unimportant tokens from the DSPAM database
2
# Remove old signatures and unimportant tokens from the DSPAM database
3
3
4
for foo in awk head tail cut sed
4
for foo in awk head tail cut sed
5
do
5
do
6
	DSPAM_Check_App="$(${foo} --version 2>&1)"
6
	if ! which ${foo} >/dev/null 2>&1
7
	if [[ "${DSPAM_Check_App/ *}" == "bash:" ]]
8
	then
7
	then
9
		echo "Command ${foo} not found."
8
		echo "Command ${foo} not found."
10
		exit 1
9
		exit 1
11
	fi
10
	fi
12
done
11
done
13
12
14
DSPAM_HOMEDIR="$(getent passwd dspam | awk -F : '{print $6}')"
13
DSPAM_getent_home="$(getent passwd dspam | awk -F : '{print $6}')"
15
[[ ! -d "${DSPAM_HOMEDIR}" ]] && exit 2
14
[ ! -d "${DSPAM_HOMEDIR}" ] && exit 2
16
DSPAM_DATA_FILES=( "${DSPAM_HOMEDIR}"/*.data )
15
if ! ls "${DSPAM_getent_home}"/*.data >/dev/null 2>&1 && \
17
if [ ! -f "${DSPAM_DATA_FILES[0]}" ]
16
	ls /etc/mail/dspam/*.data >/dev/null 2>&1
18
then
17
then
19
	DSPAM_DATA_FILES=( /etc/mail/dspam/*.data )
18
	DSPAM_HOMEDIR="/etc/mail/dspam"
20
	if [ -f "${DSPAM_DATA_FILES[0]}" ]
19
else
21
	then
20
	DSPAM_HOMEDIR="$DSPAM_getent_home"
22
		DSPAM_HOMEDIR="/etc/mail/dspam"
23
	fi
24
fi
21
fi
25
22
26
[[ ! -f "${DSPAM_HOMEDIR}/dspam.conf" ]] && exit 2
23
[ ! -f "${DSPAM_HOMEDIR}/dspam.conf" ] && exit 2
27
DSPAM_SPOOLDIR="$(grep ^Home "${DSPAM_HOMEDIR}/dspam.conf" | cut -d' ' -f2)"
24
DSPAM_SPOOLDIR="$(grep ^Home "${DSPAM_HOMEDIR}/dspam.conf" | cut -d' ' -f2)"
28
if [[ -d "${DSPAM_SPOOLDIR}" ]]
25
if [ -d "${DSPAM_SPOOLDIR}" ]
29
then
26
then
30
	cd /
27
	cd /
31
	su -s /bin/sh -c "/usr/bin/dspam_logrotate -a 30 -d ${DSPAM_SPOOLDIR}" dspam
28
	su -s /bin/sh -c "/usr/bin/dspam_logrotate -a 30 -d ${DSPAM_SPOOLDIR}" dspam
Lines 33-41 Link Here
33
	echo 'Spool directory not configured. Please set "Home" in your dspam.conf.'
30
	echo 'Spool directory not configured. Please set "Home" in your dspam.conf.'
34
fi
31
fi
35
32
36
if [[ -f "${DSPAM_HOMEDIR}/mysql.data" ]]
33
if [ -f "${DSPAM_HOMEDIR}/mysql.data" ]
37
then
34
then
38
	[[ ! -f "/usr/bin/mysql_config" ]] && exit 4
35
	[ ! -f "/usr/bin/mysql_config" ] && exit 4
39
	DSPAM_MySQL_PURGE_SQL=""
36
	DSPAM_MySQL_PURGE_SQL=""
40
	DSPAM_MySQL_VER="$(mysql_config --version | sed "s:\([^0-9\.]*\)::g")"
37
	DSPAM_MySQL_VER="$(mysql_config --version | sed "s:\([^0-9\.]*\)::g")"
41
	DSPAM_MySQL_MAJOR="$(echo "${DSPAM_MySQL_VER}" | cut -d. -f1)"
38
	DSPAM_MySQL_MAJOR="$(echo "${DSPAM_MySQL_VER}" | cut -d. -f1)"
Lines 44-60 Link Here
44
	DSPAM_MySQL_INT="$((DSPAM_MySQL_MAJOR * 65536 + DSPAM_MySQL_MINOR * 256 + DSPAM_MySQL_MICRO))"
41
	DSPAM_MySQL_INT="$((DSPAM_MySQL_MAJOR * 65536 + DSPAM_MySQL_MINOR * 256 + DSPAM_MySQL_MICRO))"
45
42
46
	# For MySQL >= 4.1 use the new purge script
43
	# For MySQL >= 4.1 use the new purge script
47
	if [[ "${DSPAM_MySQL_INT}" -ge "262400" ]]
44
	if [ "${DSPAM_MySQL_INT}" -ge "262400" ]
48
	then
45
	then
49
		[[ -f "${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql"
46
		[ -f "${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge-4.1.sql"
50
		[[ -f "${DSPAM_HOMEDIR}/mysql_purge-4.1.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge-4.1.sql"
47
		[ -f "${DSPAM_HOMEDIR}/mysql_purge-4.1.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge-4.1.sql"
51
	else
48
	else
52
		[[ -f "${DSPAM_HOMEDIR}/config/mysql_purge.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge.sql"
49
		[ -f "${DSPAM_HOMEDIR}/config/mysql_purge.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/mysql_purge.sql"
53
		[[ -f "${DSPAM_HOMEDIR}/mysql_purge.sql" ]] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge.sql"
50
		[ -f "${DSPAM_HOMEDIR}/mysql_purge.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_HOMEDIR}/mysql_purge.sql"
54
	fi
51
	fi
55
52
56
	[[ "${DSPAM_MySQL_PURGE_SQL}" == "" ]] && exit 3
53
	[ -z "${DSPAM_MySQL_PURGE_SQL}" ] && exit 3
57
	[[ ! -f "/usr/bin/mysql" ]] && exit 4
54
	[ ! -f "/usr/bin/mysql" ] && exit 4
58
	DSPAM_MySQL_HOST="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 1|tail -n 1)"
55
	DSPAM_MySQL_HOST="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 1|tail -n 1)"
59
	DSPAM_MySQL_PORT="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 2|tail -n 1)"
56
	DSPAM_MySQL_PORT="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 2|tail -n 1)"
60
	DSPAM_MySQL_USER="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 3|tail -n 1)"
57
	DSPAM_MySQL_USER="$(cat ${DSPAM_HOMEDIR}/mysql.data|head -n 3|tail -n 1)"
Lines 67-79 Link Here
67
		(/usr/bin/mysql -u ${DSPAM_MySQL_USER} -p"${DSPAM_MySQL_PWD}" ${DSPAM_MySQL_DB} -e "OPTIMIZE TABLE ${foo};") 1>/dev/null 2>&1
64
		(/usr/bin/mysql -u ${DSPAM_MySQL_USER} -p"${DSPAM_MySQL_PWD}" ${DSPAM_MySQL_DB} -e "OPTIMIZE TABLE ${foo};") 1>/dev/null 2>&1
68
	done
65
	done
69
	exit ${MYRC}
66
	exit ${MYRC}
70
elif [[ -f "${DSPAM_HOMEDIR}/pgsql.data" ]]
67
elif [ -f "${DSPAM_HOMEDIR}/pgsql.data" ]
71
then
68
then
72
	DSPAM_PgSQL_PURGE_SQL=""
69
	DSPAM_PgSQL_PURGE_SQL=""
73
	[[ -f "${DSPAM_HOMEDIR}/config/pgsql_purge.sql" ]] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/pgsql_purge.sql"
70
	[ -f "${DSPAM_HOMEDIR}/config/pgsql_purge.sql" ] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/config/pgsql_purge.sql"
74
	[[ -f "${DSPAM_HOMEDIR}/pgsql_purge.sql" ]] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/pgsql_purge.sql"
71
	[ -f "${DSPAM_HOMEDIR}/pgsql_purge.sql" ] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_HOMEDIR}/pgsql_purge.sql"
75
	[[ "${DSPAM_PgSQL_PURGE_SQL}" == "" ]] && exit 3
72
	[ "${DSPAM_PgSQL_PURGE_SQL}" == "" ] && exit 3
76
	[[ ! -f "/usr/bin/psql" ]] && exit 4
73
	[ ! -f "/usr/bin/psql" ] && exit 4
77
	DSPAM_PgSQL_HOST="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 1|tail -n 1)"
74
	DSPAM_PgSQL_HOST="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 1|tail -n 1)"
78
	DSPAM_PgSQL_PORT="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 2|tail -n 1)"
75
	DSPAM_PgSQL_PORT="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 2|tail -n 1)"
79
	DSPAM_PgSQL_USER="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 3|tail -n 1)"
76
	DSPAM_PgSQL_USER="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 3|tail -n 1)"
Lines 81-93 Link Here
81
	DSPAM_PgSQL_DB="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 5|tail -n 1)"
78
	DSPAM_PgSQL_DB="$(cat ${DSPAM_HOMEDIR}/pgsql.data|head -n 5|tail -n 1)"
82
	(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
79
	(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
83
	exit $?
80
	exit $?
84
elif [[ -f "${DSPAM_HOMEDIR}/oracle.data" ]]
81
elif [ -f "${DSPAM_HOMEDIR}/oracle.data" ]
85
then
82
then
86
	DSPAM_Oracle_PURGE_SQL=""
83
	DSPAM_Oracle_PURGE_SQL=""
87
	[[ -f "${DSPAM_HOMEDIR}/config/ora_purge.sql" ]] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/config/ora_purge.sql"
84
	[ -f "${DSPAM_HOMEDIR}/config/ora_purge.sql" ] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/config/ora_purge.sql"
88
	[[ -f "${DSPAM_HOMEDIR}/ora_purge.sql" ]] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/ora_purge.sql"
85
	[ -f "${DSPAM_HOMEDIR}/ora_purge.sql" ] && DSPAM_Oracle_PURGE_SQL="${DSPAM_HOMEDIR}/ora_purge.sql"
89
	[[ "${DSPAM_Oracle_PURGE_SQL}" == "" ]] && exit 3
86
	[ "${DSPAM_Oracle_PURGE_SQL}" == "" ] && exit 3
90
	[[ ! -f "/usr/bin/sqlplus" ]] && exit 4
87
	[ ! -f "/usr/bin/sqlplus" ] && exit 4
91
	DSPAM_Oracle_DBLINK="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 1|tail -n 1)"
88
	DSPAM_Oracle_DBLINK="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 1|tail -n 1)"
92
	DSPAM_Oracle_USER="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 2|tail -n 1)"
89
	DSPAM_Oracle_USER="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 2|tail -n 1)"
93
	DSPAM_Oracle_PWD="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 3|tail -n 1)"
90
	DSPAM_Oracle_PWD="$(cat ${DSPAM_HOMEDIR}/oracle.data|head -n 3|tail -n 1)"
Lines 95-101 Link Here
95
	(/usr/bin/sqlplus -s ${DSPAM_Oracle_USER}/${DSPAM_Oracle_PWD} @${DSPAM_Oracle_PURGE_SQL}) 1>/dev/null 2>&1
92
	(/usr/bin/sqlplus -s ${DSPAM_Oracle_USER}/${DSPAM_Oracle_PWD} @${DSPAM_Oracle_PURGE_SQL}) 1>/dev/null 2>&1
96
	exit $?
93
	exit $?
97
else
94
else
98
	[[ ! -f "/usr/bin/dspam_clean" ]] && exit 4
95
	[ ! -f "/usr/bin/dspam_clean" ] && exit 4
99
	/usr/bin/dspam_clean -s -p -u 1>/dev/null 2>&1
96
	/usr/bin/dspam_clean -s -p -u 1>/dev/null 2>&1
100
	exit $?
97
	exit $?
101
fi
98
fi

Return to bug 172781