From 2e8234e1e671c91c86c29c67cb01e69476b2c5c4 Mon Sep 17 00:00:00 2001 From: Christoph Date: Sun, 27 Jun 2021 16:53:17 +0200 Subject: [PATCH] create-postfix-pcre-chek-files.sh: Update Spam checks.. --- ...> create-update-postfix-pcre-chek-files.sh | 130 +++++++++++++++++- 1 file changed, 126 insertions(+), 4 deletions(-) rename create-postfix-pcre-chek-files.sh => create-update-postfix-pcre-chek-files.sh (71%) diff --git a/create-postfix-pcre-chek-files.sh b/create-update-postfix-pcre-chek-files.sh similarity index 71% rename from create-postfix-pcre-chek-files.sh rename to create-update-postfix-pcre-chek-files.sh index c33ff0a..39e8ffe 100755 --- a/create-postfix-pcre-chek-files.sh +++ b/create-update-postfix-pcre-chek-files.sh @@ -7,6 +7,7 @@ clean_up() { # Perform program exit housekeeping rm -f $tmp_err_msg + echo "" exit $1 } @@ -22,7 +23,8 @@ echononl(){ fatal(){ echo "" - echo -e "fatal error: $*" + echo "" + echo -e "Fatal error: $*" echo "" echo -e "\t\033[31m\033[1mInstalllation will be interrupted\033[m\033[m" echo "" @@ -90,12 +92,106 @@ detect_os_1 () { os_version="${os_version// /}" } +trim() { + local var="$*" + var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters + var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters + echo -n "$var" +} + + +# ------------- +# --- Some default settings +# ------------- + +DEFAULT_ADMIN_EMAIL="argus@oopen.de" + + +# - Is this a systemd system? +# - +if [[ "X`which systemd`" = "X" ]]; then + systemd_exists=false +else + systemd_exists=true +fi + +FORCE_UPDATE="" +UPDATED=false + +if [[ -f "/etc/postfix/header_checks.pcre" ]] \ + || [[ -f "/etc/postfix/body_check.pcre" ]] \ + || [[ -f "/etc/postfix/mime_header_check.pcre" ]]; then + + echo "" + echo -e "\033[32m--\033[m" + echo "" + echo " Header/MIME-Header/Body Checks" + echo "" + echo " At least one PCRE check file exits. Should these files be updated?" + echo "" + echo -e " \033[33mType to choose the highlighted value\033[m" + echo "" + echo "" + echononl " Force update existing header/mime-header/body checks? [\033[1;33myes\033[m/no]: " + + read FORCE_UPDATE + FORCE_UPDATE=${FORCE_UPDATE,,} + FORCE_UPDATE="$(trim "$FORCE_UPDATE")" + + if [[ -z "$FORCE_UPDATE" ]] || [[ "$FORCE_UPDATE" = "yes" ]]; then + FORCE_UPDATE=true + elif [[ "$FORCE_UPDATE" = "no" ]]; then + FORCE_UPDATE=false + else + FORCE_UPDATE="" + fi + + while [[ -z "$FORCE_UPDATE" ]] ; do + + echononl " Wrong entry! [\033[1myes\033[m/no]: " + + read FORCE_UPDATE + FORCE_UPDATE=${FORCE_UPDATE,,} + FORCE_UPDATE="$(trim "$FORCE_UPDATE")" + + if [[ -z "$FORCE_UPDATE" ]] || [[ "$FORCE_UPDATE" = "yes" ]]; then + FORCE_UPDATE=true + elif [[ "$FORCE_UPDATE" = "no" ]]; then + FORCE_UPDATE=false + else + FORCE_UPDATE="" + fi + + done + + echo "" + echo " FORCE_UPDATE.....: $FORCE_UPDATE" + echo "" + echononl " Continue (yes/no): " + read OK + OK=${OK,,} + while [ "X$OK" != "Xyes" -a "X$OK" != "Xno" ]; do + echononl " Wrong entry! [yes/no]: " + read OK + OK=${OK,,} + done + [ $OK = "yes" ] || fatal Repeat with other settings.. + + echo "" + echo -e "\033[32m--\033[m" + echo "" + +else + FORCE_UPDATE="true" +fi + + _file="/etc/postfix/header_checks.pcre" echononl " Create file '$_file' used for header replacing" -if [[ ! -f "$_file" ]]; then +if $FORCE_UPDATE ; then cat << EOF > "$_file" # --- # - Replace headers @@ -158,6 +254,7 @@ if [[ ! -f "$_file" ]]; then EOF if [[ $? -eq 0 ]] ; then echo_ok + UPDATED=true else echo_failed fi @@ -168,7 +265,7 @@ fi _file="/etc/postfix/mime_header_check.pcre" echononl " Create file '$_file' used for header replacing" -if [[ ! -f "$_file" ]]; then +if $FORCE_UPDATE ; then cat << EOF > "$_file" # --- # - Check MIME-Headers @@ -180,6 +277,7 @@ if [[ ! -f "$_file" ]]; then EOF if [[ $? -eq 0 ]] ; then echo_ok + UPDATED=true else echo_failed fi @@ -190,7 +288,7 @@ fi _file="/etc/postfix/body_check.pcre" echononl " Create file '$_file' used for header replacing" -if [[ ! -f "$_file" ]]; then +if $FORCE_UPDATE ; then cat << EOF > "$_file" # --- # - Body Checks @@ -202,6 +300,7 @@ if [[ ! -f "$_file" ]]; then EOF if [[ $? -eq 0 ]] ; then echo_ok + UPDATED=true else echo_failed fi @@ -209,4 +308,27 @@ else echo_skipped fi + +if $UPDATED ; then + echo "" + echo "" + echononl " Reload postfix daemon" + if $systemd_exists ; then + systemctl reload postfix 2> /dev/null + if [[ $? -eq 0 ]] ; then + echo_ok + else + echo_failed + fi + else + /etc/init.d/postfix reload 2> /dev/null + if [[ $? -eq 0 ]] ; then + echo_ok + else + echo_failed + fi + fi +fi + + clean_up 0