#!/bin/bash
# created by Johan Huysmans <johan.huysmans@x-tend.be>
# lasted edited on 03 / 01 / 2007
# version 0.6

DATE=`date +%d`
DIR="/root/backup/db_dump"
TMP="/tmp/$$"
ALLRIGHTS="/root/backup/allrights.pl"

LDAP="no"
MYSQL="no"
POSTGRESQL="no"
RPM="no"
PARTITION="no"
PERMISSIONS="no"

if [ ! -d $DIR ]; then mkdir -p $DIR; fi
if [ ! -d $TMP ]; then mkdir -p $TMP; fi

if [ $LDAP == "yes" ]
then
 echo " -- Start LDAP dump at: `date`"
 /usr/sbin/slapcat -v -c | /bin/gzip > $DIR/$DATE.ldif.gz
fi

if [ $MYSQL == "yes" ]
then 
 echo " -- Start MySQL dump at: `date`"
 for database in `mysqlshow --password=XXXXX | grep "|" | sed 's/|//g' | grep -v "^ *Databases *$" | sed 's/^ *//g'`
 do
  /usr/bin/mysqldump $database --password=XXXXX > $TMP/$database.mysql
 done
 cd $TMP
 tar -czf $DIR/$DATE.mysql.tar.gz *.mysql
 cd - > /dev/null
fi

if [ $POSTGRESQL == "yes" ]
then
 echo " -- Start PostgreSQL dump at: `date`"
 /usr/bin/pg_dumpall -c -d -D -U postgres | /bin/gzip > $DIR/$DATE.pgdump.gz
fi

if [ $RPM == "yes" ]
then
 echo " -- Start Rpm dump at: `date`"
 /bin/rpm -qa > $DIR/$DATE.rpmqa
fi

if [ $PARTITION == "yes" ]
then
 echo " -- Start Partition table dump at: `date`"
 /sbin/sfdisk --dump > $DIR/$DATE.partition
fi

if [ $PERMISSIONS == "yes" ]
then
 echo " -- Start Permissions and Owner dump at: `date`"
 cd $TMP
 perl $ALLRIGHTS / > /dev/null
 cd - > /dev/null
 /bin/gzip -c $TMP/ownergroup_backup.sh > $DIR/$DATE.owner.gz
 /bin/gzip -c $TMP/permissions_backup.sh > $DIR/$DATE.perm.gz
fi

rm -rf $TMP

echo " -- Dumps finished at: `date`"

