|
|
|
@ -4,84 +4,60 @@ |
|
|
|
|
|
|
|
SYMPA_CONF=/etc/sympa/sympa/sympa.conf |
|
|
|
SYMPA_DOMAIN=$(grep '^domain' "$SYMPA_CONF" | cut -f2) |
|
|
|
FORCE=false |
|
|
|
|
|
|
|
### 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/ARCHIVE |
|
|
|
for arc_entry in /var/lib/sympa/arc/*; do |
|
|
|
arc_name=$(basename "$arc_entry") |
|
|
|
if [[ $arc_name != '*' ]] && [[ $arc_name != *"@$SYMPA_DOMAIN" ]]; then |
|
|
|
$FORCE && 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 |
|
|
|
$FORCE && 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 |
|
|
|
$FORCE && 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 |
|
|
|
$FORCE && 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 |
|
|
|
$FORCE && rm /var/spool/sympa/viewmail/mod/"$mod_name" -rf |
|
|
|
echo "viewmail/mod [$mod_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 |