• 14-10-2009, 01:21:49
    #1
    Selamlar,

    Ben Linux sunucum için bir veritabanı yedekleyen sistem yazmaya çalışıyorum ama shell scriptten hiç anlamıyorum kendim biraz uğraştım ve şunu hazırlaya bildim ancak:

    #!/bin/sh
    cd /var/lib/sqlyedek
    rm -rf sqlyedek.tar.gz
    tar cvzf sqlyedek.tar.gz /var/lib/mysql
    Bununla yedekleme işlemini yapıyorum fakat bir sorun var sunucudaki sitenin birisine bişi olsa ve o halde yedek alırsa script'in hiçbir yararı olmaz. Benim yapmak istediğim silme işlemini "rm -rf sqlyedek.tar.gz" kaldırayım bunun yerine tar'ın ismini yedek aldığı tarihi yazsın ben eski yedekleri silerim bu shell scriptle mümkün değilse bana en az 3 günlük yedeklazım mesala şuda olabilir 1.tar.gz, 2.tar.gz sürekli sıralı olarak yedek alsa 1 varsa 2 yapsın 2 varsa 3 çok zor bir şeymi acaba bu?

    İlgilenenlere teşekkür ederim
  • 14-10-2009, 20:01:52
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba Veli bey,
    Scriptinizi biraz gelistireyim dedim.
    nano /usr/bin/mysqlyedekleme yapip asagidaki kodlamayi direk geciriniz.Sonra chmod islemini gerceklestiriniz.
    chmod +x /usr/bin/mysqlyedekleme
    cron ayarlari yaparak gunluk yedeklemeler yapabilirsiniz. Yedek adlari dbname_tarih.tar.gz seklinde olacaktir..
    #/usr/bin/!
    echo
    echo "Mysql Yedekleme Baslasin..."
    echo
    echo "-------Zaman Ayarlari Yukleniyor------"
    zaman=`date +"%d.%m.%Y"`
    echo
    echo "-------Log.txt Olusturuluyor------"
    ls /var/lib/mysql > /log.txt
    echo
    echo "-------Yedek Dizini Belirleniyor------"
    mkdir /sqlyedek 
    cd /sqlyedek
    echo
    echo "-------Ilgili Yedekleme Proseduru Baslamistir------"
    for x in `cat /log.txt | grep / | cut d "/" f 1`; do tar -zcvf $x_$zaman.tar.gz /var/lib/mysql/$x; done
    echo "-------Yedekleme Tamamlanmistir------"
    Saygilarimla..

    Not : Test etme firsatim olmadi. Sonucu belirtirsiniz.
  • 14-10-2009, 20:37:59
    #3
    üstad aradığım şey zaman=`date +"%d.%m.%Y"`
    buydu thank you very much bunu birde cron a eklersem tamamdır.
    son hali:
    #!/bin/sh
    echo
    echo "sql yedekleme programcigi basliyor"
    zaman=`date +"%d.%m.%Y"`
    cd /var/lib/sqlyedek
    tar cvzf $zaman-mysql-yedek.tar.gz /var/lib/mysql
    Not kullanmak isteyen olursa
    /var/lib dizinine sqlyedek klasörü oluştursunlar.