Bu yazıda sizlere bir çakalın yedekleme mekanizmasından bahsedeceğim. Öncelikle şunu belirtmem gerekiyor ki işlemlerin nasıl yapılacağına dair fazla detay vermeyeceğim. Sadece yüzeysel olarak bahsedeceğim. Diğer tüm detaylar zaten yüzlerce sitede var. Her detaya Google ile arayarak ulaşabilirsiniz veya bu yazıya yorum yapabilirsiniz ama doğru cavabı almanız biraz zaman alabilir.
Sahip olduklarımız :
İşlem Basamakları :
#!/bin/bash YYYYMMDD=`date +%Y%m%d` # veya kendi sunucumuzda son bir haftaya ait günlük yedekleri saklamak istiyorsak şöyle yazabiliriz `date +%w%a` rm -rf /home/mopened/dbbackup/$YYYYMMDD.sql.gz # mopened_ReadOnlyUser yazan yere veritabanı kullanıcısının adını yazıyoruz # 123456789 yazan yere veritabanı kullanıcısının şifresini yazıyoruz, p harfine dikkat lütfen, aynen aşağıdaki örnekte olduğu gibi olmalı # mopened_DBName yazan yere veritabanının adını yazıyoruz mysqldump -h localhost -u mopened_ReadOnlyUser -p123456789 mopened_DBName | gzip > /home/mopened/dbbackup/$YYYYMMDD.sql.gz #requires: basename,date,md5sum,sed,sendmail,uuencode function fappend { echo "$2">>$1; } # Aşağıdaki bloktaki yerleri kendimize göre değiştiriyoruz TOEMAIL="posta@alanadiniz.com"; # Yedeğin gönderileceği e-posta adresini buraya yazıyoruz FREMAIL="crondaemon@alanadiniz.com"; # Yedeği gönderiyormuş gibi yapan e-posta adresini buraya yazıyoruz:), Gmaildeki filtreleme olayı için bu adresi kullanacağız. Mümkünse sadece bu işlem için kullanacaağımız bir adres olsun. Gerçekte bu adresin ulaşılabilir olması şart değildir. Yani böyle bir mail hesabınızın olması gerekmiyor. SUBJECT="MOPENED.COM - Günlük Yedek - $YYYYMMDD"; # E-Postanın konusunu buraya yazıyoruz MSGBODY="Merhaba Çakal:), Ekteki dosyayı sakla, yoksa üzülürsün."; # E-postanın içeriğinide buraya yazıyoruz ATTACHMENT="/home/mopened/dbbackup/$YYYYMMDD.sql.gz"; # Değiştirebileceğimiz blok bitti # Bu bloktakileri değiştirmeye gerek yok MIMETYPE="application/x-compressed" TMP="/tmp/tmpfil_123"$RANDOM; BOUNDARY=`date +%s|md5sum` BOUNDARY=${BOUNDARY:0:32} FILENAME=`basename $ATTACHMENT` rm -rf $TMP; cat $ATTACHMENT|uuencode --base64 $FILENAME>$TMP; sed -i -e '1,1d' -e '$d' $TMP;#removes first & last lines from $TMP DATA=`cat $TMP` rm -rf $TMP; fappend $TMP "From: $FREMAIL"; fappend $TMP "To: $TOEMAIL"; fappend $TMP "Reply-To: $FREMAIL"; fappend $TMP "Subject: $SUBJECT"; fappend $TMP "Content-Type: multipart/mixed; boundary=\""$BOUNDARY"\""; fappend $TMP ""; fappend $TMP "This is a MIME formatted message. If you see this text it means that your"; fappend $TMP "email software does not support MIME formatted messages."; fappend $TMP ""; fappend $TMP "--$BOUNDARY"; fappend $TMP "Content-Type: text/plain; charset=UTF-8; format=flowed"; fappend $TMP "Content-Transfer-Encoding: 7bit"; fappend $TMP "Content-Disposition: inline"; fappend $TMP ""; fappend $TMP "$MSGBODY"; fappend $TMP ""; fappend $TMP ""; fappend $TMP "--$BOUNDARY"; fappend $TMP "Content-Type: $MIMETYPE; name=\"$FILENAME\""; fappend $TMP "Content-Transfer-Encoding: base64"; fappend $TMP "Content-Disposition: attachment; filename=\"$FILENAME\";"; fappend $TMP ""; fappend $TMP "$DATA"; fappend $TMP ""; fappend $TMP ""; fappend $TMP "--$BOUNDARY--"; fappend $TMP ""; fappend $TMP ""; #cat $TMP>/home/mopened/dbbackup/mailcontent.txt; # Satırın başındaki # `i silersek mail içeriğini bu dosyaya yazdırabiliriz cat $TMP|/usr/sbin/sendmail -t>/home/mopened/dbbackup/output.txt; # Oluşabilecek gönderim hatalarını bu dosyaya yazdırıyoruz rm $TMP; # Değiştirmemize gerek olmayan blok bitti rm -rf /home/mopened/dbbackup/$YYYYMMDD.sql.gz # Oluşturduğumuz yedek dosyasını sunucumuzdan siliyoruz, Eğer kendi sunucumuzda son bir haftaya ait günlük yedekleri saklamak istiyorsak bu satırı silebiliriz veya başına # koyabiliriz
| Minute | Hour | Day | Month | Weekday | Command |
| 0 | 3 | * | * | * | /home/mopened/dbbackup/dbbackup.sh >/dev/null |
| Minute | Hour | Day | Month | Weekday | Command |
| 0 | 3 | * | * | * | /home/mopened/dbbackup/dbbackup.sh |
Şimdi bütün işlemler bitti. Artık veritabanımızın günlük yedeklerini alıyoruz. Hemde masrafsız ve kapasite düşünmeye gerek kalmayacak şekilde. Ama unutmayınız veritabanındaki her şey artık yazdığınız mail adresine gidiyor olacak. Bu yüzden güvenliğini arttırmak iyi olacaktır. Google`ın 2 adımlı doğrulama yönetmini kullanmanızı tavsiye ederim. Aryıca belirtmek isterim ki anlayacağınız üzere sadece veritabanının yedeğini aldık. Dosyalar sürekli değişmediği için zaman zaman manuel olarak yedekleri alınabilir. Tabi eğer isterseniz yine aynı yöntemle bu işlemide gerçekleştirebilirsiniz ama dosyaların boyutuna bağlı olarak sunucuya çok fazla yük bindirme olasığı var. Ayrıca her gün yüzlerce mb veriyi mail olarak atmak çokta mantıklı değil sanırım. Bunun için başka bir sunucunuza ftp ile transfer etmeniz daha uygun görülebilir.
Her yiğidin yoğurt yiyişi farklıdır. İsteklerine, elindekilere ve düşüncelerine göre yöntemleride değişir. Yoğurt yemeyen birisi olarak benim yöntemim budur:). Şuanki durumum için en ideal çözüm bu sanırım.
Son yorumlar
6 hafta 4 gün önce
12 hafta 5 gün önce
17 hafta 3 saat önce
17 hafta 1 gün önce
22 hafta 2 gün önce
22 hafta 3 gün önce
38 hafta 5 gün önce
43 hafta 1 gün önce
45 hafta 5 gün önce
1 yıl 7 hafta önce