Nis
29

SSH ile Cron Yöntemi ile Otomatik Sql yedeklemek

Kategori Centos, Fedora, Linux, Mysql Veritabanı | Gönderen admin

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

Kaynak : wbturk.com

Bu yazı toplamda 258, bugün ise 0 kez görüntülenmiş


1 Yorum “SSH ile Cron Yöntemi ile Otomatik Sql yedeklemek”

  1. TSuNaMi on Tem 27, 2008 | YanItla

    bunun dosya yedeğini almalısınıda yazsanız süper olurdu :P. Meselara /root/servers dizini içindeki cs serverlarının server.cfglerini users.ini lerini bir tık ile evdeki pcye indiren bişi süper olurdu ama sanırım bu dediğim php ye giriyo:(

Yorum göndermek için giri? yapmal?s?n?z.