Merhabalar yine uzunca bir aradan sonra yazmak istedim. Şuan koltuğuma iyice yaslandım biraz alçak kaldı ekrana göre ama onunda çözümünü buldum tabi monitörü aşağı doğru eğdim :) şuan gayet iyi bi şekilde geçinmekteyiz bilgisayarım pardusum ve ben. Aylak aylak forum da dolaşırken ceviz için yazmış olduğum ve bizi büyük bir zahmetten kurtarmış olan python betiğini paylaşmak istedim. Betik SQL yedeği alıyor ve bir kaç daha işlem yapmakta. Malum bu büyük bir zahmet oluyor webmasterler veya programcılar için. Betiği crontab a eklerseniz her gün kendisi otomatik olarak yedeği belirttiğiniz dizine alıp son iki günden önceki tüm yedekleri de silerek tamamen sunucunuzda hdd üzerinde yer kaplamasını önleyerek size dostluğunu sunuyor :)

Bu arada belirtmek isterim ki bu python betiği sunucu yönetenler için düşünülerek yazılmıştır diyeceğim ama yalan tabiki ceviz için yazdım ne yalan söliyim :) gece gece saçmaladığımın da farkındayım artık kusura bakmazsınız.. Evet saçmalamayı bir kenara bırakırsak bu betiğin sunucuda çalışması için python yüklü olması gerekmektedir ki zaten bütün dağıtımlarda kurulu bi şekilde gelmekte hemen hemen..

Yedek alan betiğimiz de gerekli ayarları yaptıktan sonra  sunucu da  /etc/cron.daily/ dizinine kopyalayın ve chmod 0755 /etc/cron.daily/dosya_adi.py şeklinde chmod u ayarlayın ve koltuğunuza yaslanın. Artık server hergün bu betiği çalıştırcak ve sql yedeğiniz otomatik olarak belirttiğiniz dizine gzip ile sıkıştırılarak alınmış olucak…

Buyurun betik..

#!/usr/bin/env python
#-*-coding:utf-8-*-
 
# Ceviz.Net SQL Dumper v2.0
# Raiden - 2008-12-19
 
# Tarih, OS ve Time  Modulunu Yukle
# ----------------------------------------------------------------
import datetime, os, time
 
# Dump Edilen SQL Dosyasının Tasinacagi Dizin
# -------------------------------------------------------------------------
dizin = "/root/BACKUP/mysql/"
 
# MySQL Veritabanı Bilgileri
# --------------------------------------
user = "root"
passwd = "123456"
dbname = "test"
 
class cevizBackup:
    def __init__(self,dizin,user,passwd,dbname):
        self.dizin = dizin
        self.user = user
        self.passwd = passwd
        self.db = dbname
        self.bugun = datetime.date.today().strftime("%Y-%m-%d")
        self.sqlFileName = self.bugun + ".ysfkc.com.sql"
 
    def cevizYedekAl(self):
        if os.path.isdir(self.dizin) == False:
            print "%s Dizini bulunamadı oluşturuluyor.." % self.dizin
            os.mkdir(self.dizin)
        else:
            os.system("mysqldump -u%s -p%s %s > %s%s" % (self.user, self.passwd, self.db, self.dizin, self.sqlFileName))
            print "%s dizinine %s dosyası yedek olarak alındı" % (self.dizin,  self.sqlFileName)
            os.system("gzip %s%s" % (self.dizin,  self.sqlFileName))
            print "%s dosyası gzip ile sıkıştırılarak boyutu küçültülüyor..." % self.sqlFileName
 
    # Gecmis Dosyalar Silinerek Son Iki Gun Bırakılıyor
    # -----------------------------------------------------------------------------------
    def dosyaSil(self):
            for dosya in os.listdir(self.dizin):
		if os.stat(self.dizin + dosya).st_ctime < (time.time()-86400):
			os.remove(self.dizin + dosya)
 
yedek = cevizBackup(dizin,user,passwd,dbname)
yedek.dosyaSil()
yedek.cevizYedekAl()

Dosyayı buradan indirebilirsiniz.