#!/bin/bash

########################################
# Backup Files
########################################
today=$(date +%Y%m%d)
domains=( "domain-dir1" "domain-dir2" "domain-dir3" )

for domain in ${domains[@]}
do
  tar -czf /home/username/backups/backup.$today.${domain}.tgz /home/username/${domain}
done

########################################
# Backup MySQL databases
########################################
mysqldump --opt -uusername -ppassword -h mysql.domain1.com -A | gzip -c > /home/username/backups/backup.$today.domain1.sql.gz
mysqldump --opt -uusername -ppassword -h mysql.domain2.com -A | gzip -c > /home/username/backups/backup.$today.domain2.sql.gz
mysqldump --opt -uusername -ppassword -h mysql.domain3.com -A | gzip -c > /home/username/backups/backup.$today.domain3.sql.gz

########################################
# Backup This script
########################################
cp /home/username/backup.sh /home/username/backups/backup.$today.backup-script.sh

########################################
# Remove Old Backups
########################################

# Keep backups for 10 days (in seconds)
TimeOfLife=$((60*60*24 * 10));

TodayInSeconds=$(date -d $today +%s)

# give r/w access
chmod 700 /home/username/backups/*

for file in /home/username/backups/*
do
  CreationOfFile=$(echo $file | cut -d . -f 2)
  CreationOfFileInSeconds=$(date -d $CreationOfFile +%s)
  
  # remove files older than 10 days
  if [ $((CreationOfFileInSeconds + TimeOfLife)) -lt $TodayInSeconds ]
  then
    rm -f $file
  fi
done

# set read-only access
chmod 400 /home/username/backups/*

########################################
# Copy today backups to another server
########################################
scp /home/username/backups/*$today*  username@OtherServer:/home/username/serverbackups/



