#!/usr/bin/env bash ### CONSTANTS SYMPA_CONF=/etc/sympa/sympa/sympa.conf SYMPA_DOMAIN=$(grep '^domain' "$SYMPA_CONF" | cut -f2) ### FUNCTIONS function purge { # LIB/ARCHIVE for arc_entry in /var/lib/sympa/arc/*; do arc_name=$(basename "$arc_entry") if [[ $arc_name != '*' ]] && [[ $arc_name != *"@$SYMPA_DOMAIN" ]]; then rm /var/lib/sympa/arc/"$arc_name" -rf echo "archive [$arc_name] removed!" fi done # LIB/BOUNCE for bounce_entry in /var/lib/sympa/bounce/*; do bounce_name=$(basename "$bounce_entry") if [[ $bounce_name != '*' ]] && [[ $bounce_name != *"@$SYMPA_DOMAIN" ]]; then rm /var/lib/sympa/bounce/"$bounce_name" -rf echo "bounce [$bounce_name] removed!" fi done # SPOOL/DIGEST for digest_entry in /var/spool/sympa/digest/*; do digest_name=$(basename "$digest_entry") if [[ $digest_name != '*' ]] && [[ $digest_name != *"@$SYMPA_DOMAIN"* ]]; then rm /var/spool/sympa/digest/"$digest_name" -rf echo "digest [$digest_name] removed!" fi done # SPOOL/VIEWMAIL/BOUNCE for bounce_entry in /var/spool/sympa/viewmail/bounce/*; do bounce_name=$(basename "$bounce_entry") if [[ $bounce_name != '*' ]] && [[ $bounce_name != *"@$SYMPA_DOMAIN"* ]]; then rm /var/spool/sympa/viewmail/bounce/"$bounce_name" -rf echo "viewmail/bounce [$bounce_name] removed!" fi done # SPOOL/VIEWMAIL/MOD for mod_entry in /var/spool/sympa/viewmail/mod/*; do mod_name=$(basename "$mod_entry") if [[ $mod_name != '*' ]] && [[ $mod_name != *"@$SYMPA_DOMAIN"* ]]; then rm /var/spool/sympa/viewmail/mod/"$mod_name" -rf echo "viewmail/mod [$mod_name] removed!" fi done } function create_temp_dir { temp_dir="$SYMPA_DOMAIN-$(date '+%F')" mkdir "$temp_dir" echo "$temp_dir" } function export { echo "temp_dir=$temp_dir" cd "$temp_dir" db_name=sympa db_user=sympa db_passwd=$(grep '^db_passwd' /etc/sympa/sympa/sympa.conf | cut -f2) PGPASSWORD=$db_passwd pg_dump -h localhost -U "$db_user" "$db_name" | gzip >"$db_name.psql.gz" cp "$SYMPA_CONF" . tar -czvf lib-sympa.tgz /var/lib/sympa tar -czvf spool-sympa.tgz /var/spool/sympa cd .. tar -cf "$temp_dir.sympa" "$temp_dir" rm "$temp_dir" -rf } ### MAIN set -Eeu purge