Shell Script ile MySQL Yedek
Yazar: SBayir Tarih: Ağustos 7, 2010 · 1 Yorum , Kategori: Shell / Bash
Etiketler: backup almak, cron ile yedek, mysql backup and mail, mysql db yedek, mysql yedek, otomatik yedeklemek, shell script yedek, sikrip, veritabanı yedek mail, yedeklemek
Shell (Bash) script, belirttiğiniz veritaban(lar)ının yedeğini alarak, belirttiğiniz mail adresine gönderir. Orjinali ameir dot net sitesinde bulunup, tarafımdan yalnızca Türkçe açıklama satırları eklenmiştir.
Kullanacak arkadaşların baş kısımda bulunan ameir.net’e ait olan telif bölümünü kaldırmamasını rica ediyorum.
#! /bin/bash
# Ameir Abdeldayem
# http://www.ameir.net
# Turkce Bilgi : Sertac BAYIR – www.hatanerde.com# MySQL Server Adi
SERVER=”localhost”# Sunucu IP Adresi
HOST=”127.0.0.1″# MySQL kullanıcı adı
USER=”veritabani_user”# MySQL sifre
PASS=”veritabani_sifre”# Aralarinda bosluk birakarak birden fazla veritabanı yazabilirsiniz.
DBS=”veritabani_adi”# y olarak secerseniz tum veritabanlari, n olarak secerseniz yalnizca sectiklerinize ait yedek alınır
DUMPALL=n# MySQL dump secenekleri
OPTIONS=” –quick –add-drop-table –add-locks –extended-insert –lock-tables”# mail atilmadan once yedeklenecek klasor
BACKDIR=”/backup”# Tarih formati. Gonderilen dosya adinda bulunur
DATE=`date +’%m-%d-%Y’`# Mail olarak gonderilmesini istiyorsanız y, istemiyorsaniz n olarak seciniz
MAIL=y# Yedeklerin iletilecegi mail adresi
EMAILS=”msbayir@gmail.com”SUBJECT=”MySQL backup on $SERVER ($DATE)”
#————————————————————–
# check of the backup directory exists
# if not, create it
if [ -e $BACKDIR ]
then
echo Backups directory already exists
else
mkdir $BACKDIR
fiif [ $DUMPALL = "y" ]
then
echo Tum veritabanlari yedekleniyor
mysqldump -h $HOST –user=$USER –password=$PASS $OPTIONS –all-databases > \ $BACKDIR/$SERVER-mysqlbackup-ALL-$DATE.sql
gzip -f -9 $BACKDIR/$SERVER-mysqlbackup-ALL-$DATE.sql
else
echo Backing up MySQL databases…
for database in $DBS
do
mysqldump -h $HOST –user=$USER –password=$PASS $database > $BACKDIR/$SERVER-mysqlbackup-$database-$DATE.sql
echo “SQL Yedeği alındı”
gzip -f -9 $BACKDIR/$SERVER-mysqlbackup-$database-$DATE.sql
echo “Sıkıştırıldı”
done
fiBODY=”Yedeginiz hazır!”
if [ $MAIL = "y" ]
thenecho “$BODY” | mutt -s “$SUBJECT” \-a $BACKDIR/*$DATE.sql.gz $EMAILS
echo “Veritabaniniz mail olarak gonderildi.”
echo “Turkcelestirme Sertac BAYIR – www.hatanerde.com”fi
echo “Islem tamamlandi”
Kodları uygulamak için aşağıda ki satırları kullanabilirsiniz ;
mkdir yedek-programi
cd yedek-programi
nano yedek.sh
( Açılan bölüme yukarıda ki kodları uygulayınız. )
Ctrl + X ile kayıt edelim.
chmod 777 yedek.sh
./yedek.sh
İşlemi cron’a bağlayıp yedek maili oluşturursanız, akşamları rahat rahat uyuyabilirsiniz.
