File: //sbin/ie_ruleupdate
#!/bin/sh
set -e
RSPAMD_DB_DIR=${RSPAMD_DB_DIR:-"/var/lib/rspamd"}
RULES_FILE="${RSPAMD_DB_DIR}/rspamd.rules"
SCORES_FILE="${RSPAMD_DB_DIR}/rspamd.scores"
DESC_FILE="${RSPAMD_DB_DIR}/description.json"
EMAIL_RULES_DIR=${EMAIL_RULES_DIR:-"/var/imunify360/files/email-rules"}
# define the directory with the last downloaded files
dir_name=$(ls -t1 ${EMAIL_RULES_DIR} | grep "v1_" | head -1)
dir_with_update=${EMAIL_RULES_DIR}/${dir_name}
if [ -z "${dir_name}" ]; then
echo "failed to define directory name"
exit 11
fi
SRC_RULES_FILE="${dir_with_update}/rspamd.rules"
SRC_SCORES_FILE="${dir_with_update}/rspamd.scores"
SRC_DESC_FILE="${dir_with_update}/description.json"
cp ${SRC_RULES_FILE} ${RULES_FILE}.tmp
cp ${SRC_SCORES_FILE} ${SCORES_FILE}.tmp
mv ${RULES_FILE}.tmp ${RULES_FILE}
mv ${SCORES_FILE}.tmp ${SCORES_FILE}
chmod 644 ${RULES_FILE} ${SCORES_FILE}
cp ${SRC_DESC_FILE} ${DESC_FILE}
systemctl is-active rspamd 1>/dev/null && systemctl reload rspamd
echo "$(date) spamfilter rules and scores have been updated to:"
cat ${DESC_FILE}
# clean old archive if it exists
if [ -f "${RSPAMD_DB_DIR}/ie-rspamd-update.tgz" ]; then
rm -f "${RSPAMD_DB_DIR}/ie-rspamd-update.tgz"
fi