Merhabalar,

 

Bu yazıda Mysql veritabanının sunucu üzerinden otomatik olarak yedeğini alma işlemini anlatacağım.

Öncelikle sunucumuza ssh ile erişim sağlıyoruz. Sonrasında;

 

cd /usr

yazarak "usr" klasörüne geçiş yapıyoruz.

 

mkdir yedekler

komutuyla "yedekler" adında bir klasör oluşturuyoruz.

 

cd yedekler

komutuyla "yedekler" klasörüne geçiş yapıyoruz.

 

nano yedekle.sh

komutuyla "yedekle.sh" adında bir dosya oluşturuyoruz. Bu dosyanın içeriğine şu kodları ekliyoruz:

#/usr/bin/!
zaman=$(date +%T)
isim=($zaman"_db.sql")
mysqldump --host="localhost" --user="username" --password="password" db_name > /usr/yedekler/"$isim"

Yukarıdaki kodların yaptığı işlemi özet olarak geçecek olursak;

* "zaman" adında bir değişten oluşturup değerine o an ki saati verdik. Ör: "20:00:00"

* "isim" adında bir değişken oluşturup değerine "zaman" değişkeni ve "_db.sql" string ifadesinin birleşimini verdik. Ör: "20:00:00_db.sql"

* mysqldump ile başlayan kısımda veritabanı bilgilerimizi yazarak veritabanı yedeğini alma komutunu çalıştıracağımızı söylüyoruz.

"Ctrl" ve "X" tuşlarına birlikte basarak dosyayı kaydedeceğimizi, sonrasında "Y" tuşuna basarak "Emin misiniz ?" sorusuna "Evet" yanıtını verdiğimizi ve en sonunda da "Enter" tuşuna basarak işlemi bitirdiğimizi söylüyoruz.

 

crontab -e

komutunu yazarak crontab işlemlerinin tanımlandığı kısmı açıyoruz.

0 * * * * /usr/yedekler/yedekle.sh

komutunu yazarak aynı şekilde "Ctrl + X", "Y" ve "Enter" tuşlarına basarak işlemi kaydediyoruz. Böylece her saat başı veritabanı yedeğimiz otomatik olarak alınmış olacaktır. Eğer siz farklı zaman aralıklarında almak istiyorsanız (ör: her gün saat 8'de gibi) crontab ifadesinde farklı bir tanımlama kullanabilirsiniz.

 

İyi çalışmalar.