SSH ile Cron Yöntemi ile Otomatik Sql yedeklemek
Linux, Pratik Bilgiler, SQL, Server Side January 24th, 2008->
Daha Önceki SSH ile Sql Yedekeleme ile ilgili Makalemde Manuel Olarak yedeklemeden Bahsetmistim Simdi ise Asagidaki scripti kullanarak butun site yerine sadece SQL'in yedegini otomatik olarak istediginiz tarihe ve dosya ya ayarlama yaparak alabilirsiniz..Kullanabilmeniz icin root yetkinizin olmasi sarttir sql in buyuklugu ne olursa olsun eksiksiz olarak yedekliyebilirsiniz isterseniz belirttiginiz ftp adresine yada sunucu adresine yada localhost daki yani kendi sunucunuzdaki belirttiginiz herahangi bir dizine de sql yedeginizi yorulmadan hergun backupliyabilirsiniz
Kurulum:
Server'a root olarak giris yapin
cd /root
vi /root/backup.sh
Asagidaki Scripti burda olusturmus oldugumuz backupo.sh dosyasina yapistiriyoruz ve
gerekli ayarlari yapip
:wq
diyerek kaydedin ve cikin sonra calistirma yetkisi atiyalim
chmod +x /root/backup.sh
root kullanicisina bu yetkiyi verdikten sonra backup.sh scriptimizi crona ekliyelim
crontab -e
daha sonra
00 00 * * * /root/backup.sh
seklinde cronumuzu hergun gece saat 12 de sql imizi tam anlamiyla yedeklemesi icin cronumuzu calisitiriyoruz.
-
#!/bin/sh
-
-
# ========> Ayarlar>================
-
-
# DB Adi
-
databases="db_adi"
-
-
# yedegin yuklenecegi yer
-
backupdir=/root/yedeklerim
-
mysqldumpcmd=/usr/bin/mysqldump
-
-
# db sifresi
-
userpassword=" --user=User_name --password=Sifre_buraya"
-
-
dumpoptions=" --quick --add-drop-table --add-locks --extended-insert --lock-tables"
-
-
gzip=/bin/gzip
-
uuencode=/usr/bin/uuencode
-
mail=/bin/mail
-
-
# Backupun e-maille gonderilmesini istiyormusun?? "y"= Evet "n"= Hayir
-
sendbackup="n"
-
subject="Serverdan yedekleme"
-
mailto="wbturk@wbturk.com"
-
-
# Yedegin baska bir FTP hesabina yuklenmesini istermisin? "y"= Evet "n"= Hayir
-
ftpbackup="n"
-
ftpserver="ftp.domain.tld"
-
ftpuser="ftp_username"
-
ftppasswd="ftp_pass"
-
# Uzak FTP dosya yolunu yazin ( ornek C:\yedeklerim
-
ftpdir="/root/yedeklerim"
-
-
#========> Genel ayarlar.>====================
-
-
# Haftanin hangi gunu? (0-6)
-
DOW=`date +%w`
-
-
# Belirlenen klasor yoksa kendin olustur.
-
mkdir -p ${backupdir}
-
if [ ! -d ${backupdir} ]
-
then
-
echo "yerel klasor: ${backupdir}"
-
exit 1
-
fi
-
-
echo "Dumping MySQL Databases"
-
for database in $databases
-
do
-
$mysqldumpcmd $userpassword $dumpoptions $database> ${backupdir}/${DOW}-${database}.sql
-
done
-
-
echo "Compressing Dump Files"
-
for database in $databases
-
do
-
rm -f ${backupdir}/${DOW}-${database}.sql.gz
-
$gzip ${backupdir}/${DOW}-${database}.sql
-
done
-
-
if [ $sendbackup = "n" ]
-
then
-
for database in $databases
-
do
-
$uuencode ${backupdir}/${DOW}-${database}.sql.gz> ${backupdir}/${database}.sql.gz
-
$mail -s "$subject : $database" $mailto <${backupdir}/${DOW}-${database}.sql.gz
-
done
-
fi
-
-
echo "FTP file to $ftpserver FTP server"
-
if [ $ftpbackup = "y" ]
-
then
-
for database in $databases
-
do
-
echo "==> ${backupdir}/${DOW}-${database}.sql.gz"
-
ftp -n $ftpserver <
-
user $ftpuser $ftppasswd
-
bin
-
prompt
-
cd $ftpdir
-
lcd ${backupdir}
-
put ${DOW}-${database}.sql.gz
-
quit
-
EOF
-
done
-
fi
-
-
ls -l ${backupdir}
-
echo "Backup Bitmistir. Allah yardimciniz olsun ..!"
-
exit
umarim faydasi dokunur kolay gelsin.



























Son Yorumlamalar