1#!/bin/bash 2set -o pipefail 3 4#set -x 5PROGNAME="$(basename $0)" 6 7BACKUP_DIR=~sogo/backups 8SOGO_TOOL=/usr/sbin/sogo-tool 9DAYS_TO_KEEP="30" 10 11DATE=$(date +%F_%H%M) 12LOG="logger -t $PROGNAME -p daemon.info" 13 14# log to stdout if on a tty 15tty -s && LOG="cat -" 16 17function initChecks { 18 if [ ! -d "$BACKUP_DIR" ]; then 19 mkdir -m700 -p "$BACKUP_DIR" 20 if [ $? -ne 0 ]; then 21 echo "BACKUP_DIR doesn't exist and couldn't create it, aborting ($BACKUP_DIR)" | $LOG 22 exit 1 23 fi 24 fi 25 26 if [ ! -w "$BACKUP_DIR" ]; then 27 echo "$BACKUP_DIR not writable. Aborting" | $LOG 28 exit 1 29 fi 30} 31 32function removeOldBackups { 33 34 if [ ! -z $DRYRUN ]; then 35 RM="echo \"not deleted\"" 36 else 37 RM="rm -rf" 38 fi 39 40 echo "Deleting old backups..." | $LOG 41 find ${BACKUP_DIR}/ -maxdepth 1 -type d -iname "sogo-*" -mtime "+$DAYS_TO_KEEP" -ls -exec $RM {} \; 2>&1 | $LOG 42 echo "Done deleting old backups." | $LOG 43} 44 45 46function dumpit { 47 mkdir -m700 "$BACKUP_DIR/sogo-${DATE}" 2>&1 | $LOG 48 if [ $? -ne 0 ]; then 49 exit 1 50 fi 51 $SOGO_TOOL backup "$BACKUP_DIR/sogo-${DATE}/" ALL 2>&1 | $LOG 52 RC=$? 53 if [ $RC -ne 0 ]; then 54 echo -e "FAILED, error while dumping sogo data" | $LOG 55 exit $RC 56 else 57 echo -e "OK: dumped sogo data" | $LOG 58 fi 59} 60 61echo "$PROGNAME starting" | $LOG 62initChecks 63dumpit 64removeOldBackups 65echo "$PROGNAME exiting" | $LOG 66 67 68