Kendi sitelerimde kullanmak icin veritabani yedegi alip, sIkistiran, crontab ile calisabilecek bir script yazdim. Ihtiyaci olanlar kullanabilsin diye buraya da ekliyorum.

Kullanimi:
./db-backup.sh {username} {password} {dbadi} [klasor]
Shell ile uyumlu yazilmistir, varsayilan olarak bash olmayan (mesela FreeBSD) sistemlerde bile calismaktadir.

Bir cron isi ekleyerek (cpanelden eklemeniz mumkun), her gun veritabani yedegi alinmasini saglayabilirsiniz.
#!/bin/sh
# db-backup.sh veritabani yedekler
# Copytight (C) 2008  Onur Aslan  <onur@siyahport.com>
# 
# Bu yazilim hic bir garantisi olmadan gelmektedir.
# Bu ozgur bir yazilimdir, GNU Genel Kamu Lisansi surum 3 satlari altinda
# dilediginiz gibi degistirebilir, cogaltip, dagitabilirsiniz.

LOGFILE=db-backup.log
LOGDATE=`date +"%d.%m.%Y %H:%M"`
SIKISTIRMA="gzip"   # bzip2 de kullanabilirsiniz
FILENAME="%DBNAME-`date +%s`.sql.gz"
CHARSET="utf8"


# Eger adam klasor belirttiyse
# O klasore gecis yapiliyor
if [ -n "$4" ]; then
 cd $4;
fi;

# Mysqldump var mi diye kontrol ediliyor
mysqldump --help > /dev/null 2>&1
if [ $? -ne 0 ]; then
 echo "$LOGDATE Error: mysqldump bulunamadi" >> $LOGFILE;
 exit 1;
fi;

# Sikistirma kontrol
$SIKISTIRMA --help > /dev/null 2>&1
if [ $? -eq 127 ]; then
 echo "$LOGDATE Error: $SIKISTIRMA bulunamadi" >> $LOGFILE;
 exit 1;
fi;

# Tum argumenler girilmis mi diye kontrol ediliyor
if [ $# -lt 3 ]; then
 echo "$LOGDATE Error hatali kullanim. Kullanimi: ./db-backup.sh {username} {password} {dbadi} [klasor]" >> $LOGDATE;
 exit 2;
fi

# $FILENAME icerisine db adi konuluyor
FILENAME=`echo $FILENAME | sed s/%DBNAME/$3/`

# Yedek aliniyor
mysqldump --default-character-set=$CHARSET --user=$1 --password=$2 $3 | $SIKISTIRMA -f > $FILENAME
if [ $? -eq 0 ]; then
 echo "$LOGDATE Veritabani basariyla yedeklendi ve kaydedildi: $FILENAME" >> $LOGFILE;
 echo "$LOGDATE Veritabani basariyla yedeklendi ve kaydedildi: $FILENAME";
else
 echo "$LOGDATE Veritabani yedeklenirken bir hata olustu: $?" >> $LOGFILE;
 exit 3;
fi