You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.4 KiB
87 lines
2.4 KiB
#!/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
|