#!/usr/bin/env bash timestamp="$(date +"%Y%m%d-%H%M%S")-" # If the backup location doesn't exist yet, create it if [ ! -d $mail_folder_destination ]; then mkdir -p $mail_folder_destination fi # If the parent directory of the backup source exists, enter it if [ -d $mail_folder_source ]; then cd $mail_folder_source else exit 1 fi # Loop through all subdirectories of $mail_folder_source for subfolder in $mail_folder_source* do # use basename subfolder=$(basename $subfolder) # If it is a folder if [ -d $subfolder ]; then cd $subfolder # If the backup location for that domain doesn't exist yet, create it if [ ! -d $mail_folder_destination$subfolder ]; then mkdir -p $mail_folder_destination$subfolder fi # Loop through all subsubdirectories (mailboxes) of $subfolder (domain name) for subsubfolder in $mail_folder_source$subfolder/* do # use basename subsubfolder=$(basename $subsubfolder) echo "$subsubfolder --> $mail_folder_destination$subfolder/$timestamp$subsubfolder$tar_suffix$gpg_suffix" # tar to /tmp tar cfJ $tmp$timestamp$subsubfolder$tar_suffix $subsubfolder # gpg to backup location gpg -e \ -r "$gpg_public_key" \ -o "$mail_folder_destination$subfolder/$timestamp$subsubfolder$tar_suffix$gpg_suffix" \ $tmp$timestamp$subsubfolder$tar_suffix # remove tar in /tmp rm -f $tmp$timestamp$subsubfolder$tar_suffix done fi done # Backup mailman mailing lists # If the backup location doesn't exist yet, create it if [ ! -d $mailman_folder_destination ]; then mkdir -p $mailman_folder_destination fi # If the parent directory of the backup source exists, enter it if [ -d $mailman_folder_source ]; then cd $mailman_folder_source else exit 1 fi # Loop through all subdirectories of $mailman_folder_source for subfolder in $mailman_folder_source* do # use basename subfolder=$(basename $subfolder) if [ $subfolder = archives ] || [ $subfolder = data ] || [ $subfolder = lists ]; then echo "$subfolder --> $mailman_folder_destination$timestamp$subfolder$tar_suffix$gpg_suffix" # tar to /tmp tar cfJ "$tmp$timestamp$subfolder$tar_suffix" $subfolder # gpg to backup location gpg -e \ -r "$gpg_public_key" \ -o $mailman_folder_destination$timestamp$subfolder$tar_suffix$gpg_suffix \ $tmp$timestamp$subfolder$tar_suffix # remove tar in /tmp rm -f $tmp$timestamp$subfolder$tar_suffix fi done