#!/bin/sh
# Backup script created by Mike from Mijn-Sleutel.net 2004
# Any questions mail to backup@mijn-sleutel.nl
#
#
# Description:
# This scripts create an backup with sysbk and mysqldump,
# every database will be tarred and gzipped so u can search
# in the backup.tar.gz for the database u want. Sometimes we 
# got customers asking for it. After te backup it will be 
# transfered to the remote (backup)server. At this server,
# no builded backup will be restored. This script doesnt
# check for free diskspace. So be warned.
#
# Define settings
password=`cat /etc/psa/.psa.shadow`
DATE=`/bin/date +%m-%e-%y`
backupdir=/backup/files/sysbk # NO TRAILING SLASH!!!
ftp_host=
ftp_port=
ftp_user=
ftp_passwd=
logmail=
rm -rf /backup/files/sysbk/* # CHANGE TO backupdir
#
echo -e "\033[32;1m [1] \033[0m"Preparing and launching sysbk...
#
/usr/local/sbin/sysbk -s >> logformail
#
echo -e "\033[32;1m [2] \033[0m"Dumping every database to a .tar.gz file...
#
mkdir $backupdir/$DATE/mysql
cd $backupdir/$DATE/mysql
for i in `/usr/bin/mysql -uadmin -p$password -e 'show databases'|grep -v Database`;
  do /usr/bin/mysqldump -uadmin -p$password $i > $i.sql && tar -cf $i.tar $i.sql && gzip -S .gz $i.tar && rm -rf $i.sql;
done
/bin/chmod 600 *.tar.gz
cd /backup/scripts
ls -a $backupdir/$DATE/mysql >> logformail
cd /backup/files/sysbk
#
echo -e "\033[32;1m [3] \033[0m"Tarring and gzipping the created sysbk and mysql backups...
#
tar -cf $DATE.tar $DATE && gzip -S .gz $DATE.tar
cd /backup/scripts
#
echo -e "\033[32;1m [4] \033[0m"Deleting the created backup but leaving the $DATE.tar.gz...
#
rm -rf $backupdir/$DATE
ls --full-time $backupdir >> logformail
#
echo -e "\033[32;1m [5] \033[0m"Starting transfer to remote...
#
echo open -u $ftp_user,$ftp_passwd $ftp_host >ftp_commands
echo put $backupdir/$DATE.tar.gz >>ftp_commands
echo exit >>ftp_commands
lftp -f ftp_commands >> logformail
rm -f ftp_commands
#
echo -e "\033[32;1m [6] \033[0m"Mailing a small log
#
mutt -s "backup van $DATE" $logmail< "." \ < logformail
rm -f logformail
#
echo -e "\033[32;1m It looks like your backup is finished \033[0m"
#
