You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2018/09/17 09:37:29 UTC
svn commit: r1841057 - in
/spamassassin/trunk/masses/contrib/automasscheck-minimal:
automasscheck-minimal.cf.dist automasscheck-minimal.sh
Author: hege
Date: Mon Sep 17 09:37:28 2018
New Revision: 1841057
URL: http://svn.apache.org/viewvc?rev=1841057&view=rev
Log:
Clean up and remove bashisms. Add PERL, REUSE, CUSTOM_PREFS, CUSTOM_RULES to config.
Modified:
spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist
spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh
Modified: spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist
URL: http://svn.apache.org/viewvc/spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist?rev=1841057&r1=1841056&r2=1841057&view=diff
==============================================================================
--- spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist (original)
+++ spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist Mon Sep 17 09:37:28 2018
@@ -19,7 +19,7 @@
# automasscheck-minimal configuration file
-# davej 0.03
+# davej 0.04
# See https://wiki.apache.org/spamassassin/NightlyMassCheck
@@ -31,22 +31,42 @@ LOGPREFIX="YOUR-USERNAME"
RSYNC_USERNAME="YOUR-USERNAME"
RSYNC_PASSWORD="YOUR-PASSWORD"
+# Path to perl executable
+PERL=/usr/bin/perl
+
# If your corpus is huge, to speed up processing you can use a ramdisk for WORKDIR
# It doesn't need to survive a reboot - it will be automagically recreated
-WORKDIR=~/masscheckwork
+WORKDIR=$HOME/masscheckwork
# HOW MANY MASSCHECK SIMULTANEOUS THREADS CAN YOUR BOX HANDLE?
# Default = 8
# If using on an older PC you may want to lower to 6 or less
# If load is still too high - decrease some more.
# A well equipped 8 core server can easily handle 10 or more.
-# In automasscheck-minimal.sh change to
-# JOBS=10
+JOBS=8
-# Leave these blank if you do not want trusted_networks
-# and/or internal_networks to be set
-TRUSTED_NETWORKS=
-INTERNAL_NETWORKS=
+# Leave blank if you do not want trusted_networks or internal_networks to be set
+# Normally both should atleast include IP of your MX server(s)
+# https://wiki.apache.org/spamassassin/TrustPath
+TRUSTED_NETWORKS=""
+INTERNAL_NETWORKS=""
+
+# Uncomment to enable --reuse for net mass-checks. Mails MUST have been
+# processed at receive time with all network tests enabled, without any
+# major shortcircuiting and having the X-Spam-Status result header added.
+# This results in much faster mass-checking as there is no need to run
+# network tests (dnsbl/spf/dkim/etc lookups) needlessly again. It also
+# results in more accurate stats/scores, since dynamic dns data can change
+# hourly - results will be different days or even months later when
+# mass-check is run.
+#REUSE=--reuse
+
+# Custom rules/config files for mass-check
+# Specified file (multiples files separated by space) will be..
+# .. added to runtime spamassassin/user_prefs
+#CUSTOM_PREFS="$HOME/custom_prefs.cf"
+# .. created as runtime rules/99_custom.cf
+#CUSTOM_RULES="$HOME/custom_rules.cf"
run_all_masschecks() {
### sample: single corpus ###
@@ -57,13 +77,13 @@ run_all_masschecks() {
# If you have multiple separate corpuses, you can specify as many run_masscheck lines as you want below.
### user2 ###
#run_masscheck user2 \
- # ham:mbox:/home/user2/mail/HAM
- # spam:mbox:/home/user2/mail/SPAM
+ # ham:mbox:/home/user2/mail/HAM \
+ # spam:mbox:/home/user2/mail/SPAM \
# This is an example of Maildir instead of mbox
### user3 ###
#run_masscheck user3 \
# ham:dir:/home/user3/mail/HAM/cur \
- # spam:dir:/home/user3/mail/SPAM/cur \
+ # spam:dir:/home/user3/mail/SPAM/cur
}
### END CONFIGURATION ###
Modified: spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh
URL: http://svn.apache.org/viewvc/spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh?rev=1841057&r1=1841056&r2=1841057&view=diff
==============================================================================
--- spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh (original)
+++ spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.sh Mon Sep 17 09:37:28 2018
@@ -19,8 +19,8 @@
setup_masscheck() {
- [[ ! -d $WORKDIR/$TYPE/masses/spamassassin ]] && mkdir -p $WORKDIR/$TYPE/masses/spamassassin
- cd $WORKDIR/$TYPE/masses/
+ [ ! -d "$WORKDIR/$TYPE/masses/spamassassin" ] && mkdir -p "$WORKDIR/$TYPE/masses/spamassassin"
+ cd "$WORKDIR/$TYPE/masses" || { echo "ERROR: cd $WORKDIR/$TYPE/masses failed" >&2; exit 1; }
rm -f spamassassin/*
echo "bayes_auto_learn 0" > spamassassin/user_prefs
echo "lock_method flock" >> spamassassin/user_prefs
@@ -29,76 +29,76 @@ setup_masscheck() {
echo "whitelist_bounce_relays example.com" >> spamassassin/user_prefs
echo "score ANY_BOUNCE_MESSAGE 0" >> spamassassin/user_prefs
echo "score BOUNCE_MESSAGE 0" >> spamassassin/user_prefs
- [[ -n "${TRUSTED_NETWORKS}" ]] && echo "trusted_networks ${TRUSTED_NETWORKS}" >> spamassassin/user_prefs
- [[ -n "${INTERNAL_NETWORKS}" ]] && echo "internal_networks ${INTERNAL_NETWORKS}" >> spamassassin/user_prefs
+ [ -n "${TRUSTED_NETWORKS}" ] && echo "trusted_networks ${TRUSTED_NETWORKS}" >> spamassassin/user_prefs
+ [ -n "${INTERNAL_NETWORKS}" ] && echo "internal_networks ${INTERNAL_NETWORKS}" >> spamassassin/user_prefs
+ [ -n "${CUSTOM_PREFS}" ] && cat ${CUSTOM_PREFS} >> spamassassin/user_prefs
+ rm -f "$WORKDIR/$TYPE/rules/99_custom.cf"
+ [ -n "${CUSTOM_RULES}" ] && cat ${CUSTOM_RULES} > "$WORKDIR/$TYPE/rules/99_custom.cf"
}
setup_checktype() {
- unset NET LOGTYPE
- export RSYNC_PASSWORD
- [[ ! -d $WORKDIR ]] && mkdir $WORKDIR
- DOW=`date +%w`
- if [[ "$DOW" -ne 6 ]] || [[ "$1" == "--nightly" ]]; then
+ [ ! -d "$WORKDIR" ] && mkdir "$WORKDIR"
+ DOW=$(date +%w)
+ if [ "$DOW" -ne 6 ] || [ "$1" = "--nightly" ]; then
# Run nightly_mass_check
TYPE=nightly_mass_check
echo "Syncing $TYPE"
- rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ $WORKDIR/$TYPE/
+ rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ "$WORKDIR/$TYPE/"
RC=$?
+ NET=
LOGTYPE=
- RSYNCMOD=corpus
else
# If Saturday, run the weekly_mass_check
TYPE=weekly_mass_check
echo "Syncing $TYPE"
- rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ $WORKDIR/$TYPE/
+ rsync -qrz --delete rsync://rsync.spamassassin.org/tagged_builds/$TYPE/ "$WORKDIR/$TYPE/"
RC=$?
NET=--net
+ [ -z "$REUSE" ] && NET="$REUSE $NET"
LOGTYPE=net-
- RSYNCMOD=corpus
fi
- if [[ "$RC" -ne 0 ]]; then
- echo "ERROR: rsync failure $RC, aborting..."
+ if [ "$RC" -ne 0 ]; then
+ echo "ERROR: rsync failure $RC, aborting..." >&2
exit 1
else
- SVNREV=`awk '/Revision:/ {print $2}' $WORKDIR/$TYPE/masses/svninfo.tmp`
- [[ ! -z "$SVNREV" ]] && echo "SVN revision = $SVNREV"
+ SVNREV=$(awk '/Revision:/ {print $2}' "$WORKDIR/$TYPE/masses/svninfo.tmp")
+ [ ! -z "$SVNREV" ] && echo "SVN revision = $SVNREV"
fi
}
run_masscheck() {
CORPUSNAME=$1
shift
- if [[ "$CORPUSNAME" == "single-corpus" ]]; then
+ if [ "$CORPUSNAME" = "single-corpus" ]; then
# Use this if you have only a single corpus
LOGSUFFIX=
else
LOGSUFFIX="-${CORPUSNAME}"
fi
- LOGNAME=${LOGTYPE}${LOGPREFIX}${LOGSUFFIX}.log
- rm -f ham-${LOGNAME} spam-${LOGNAME}
+ LOGFILE=${LOGTYPE}${LOGPREFIX}${LOGSUFFIX}.log
+ rm -f ham-${LOGFILE} spam-${LOGFILE}
set -x
- ./mass-check --hamlog=ham-${LOGNAME} --spamlog=spam-${LOGNAME} \
- -j $JOBS $NET --progress \
+ $PERL ./mass-check --hamlog=ham-${LOGFILE} --spamlog=spam-${LOGFILE} \
+ -j $JOBS $NET --progress \
"$@"
- LOGLIST="$LOGLIST ham-${LOGNAME} spam-${LOGNAME}"
+ LOGLIST="$LOGLIST ham-${LOGFILE} spam-${LOGFILE}"
set +x
- ln -s ham-${LOGNAME} ham.log
- ln -s spam-${LOGNAME} spam.log
+ ln -s ham-${LOGFILE} ham.log
+ ln -s spam-${LOGFILE} spam.log
}
upload_results() {
# Occasionally rsync server fails to respond on first attempt,
# so attempt upload a few times before giving up.
- [[ -z "$RSYNCMOD" ]] && return 0
- if [[ -z "$RSYNC_PASSWORD" ]] || [[ "$RSYNC_PASSWORD" == "YOUR-PASSWORD" ]]; then
+ if [ -z "$RSYNC_PASSWORD" ] || [ "$RSYNC_PASSWORD" = "YOUR-PASSWORD" ]; then
return 0
fi
TRY=0
- while [[ "$TRY" -le 5 ]]; do
+ while [ "$TRY" -le 5 ]; do
TRY=$((TRY+1))
- ARGS="-qPcvz $LOGLIST $RSYNC_USERNAME@rsync.spamassassin.org::$RSYNCMOD/"
+ ARGS="-qPcvz $LOGLIST $RSYNC_USERNAME@rsync.spamassassin.org::corpus/"
echo "rsync $ARGS"
- rsync $ARGS && break
+ RSYNC_PASSWORD=$RSYNC_PASSWORD rsync $ARGS && break
sleep 5m
done
}
@@ -109,19 +109,20 @@ unset RSYNC_USERNAME
unset RSYNC_PASSWORD
unset WORKDIR
unset CHECKDIR
+unset REUSE
# Configure
-if [[ -e ~/.automasscheck.cf ]]; then
- . ~/.automasscheck.cf
+if [ -e "$HOME/.automasscheck.cf" ]; then
+ . $HOME/.automasscheck.cf
else
- echo "ERROR: Configuration file expected at ~/.automasscheck.cf"
- echo " See https://wiki.apache.org/spamassassin/NightlyMassCheck"
+ echo "ERROR: Configuration file expected at $HOME/.automasscheck.cf" >&2
+ echo " See https://wiki.apache.org/spamassassin/NightlyMassCheck" >&2
exit 255
fi
# Run
JOBS=${JOBS:=8}
-setup_checktype $@
+setup_checktype "$@"
setup_masscheck
unset LOGLIST
run_all_masschecks