yedek almak sıkıcı bir işlem olduğundan çoğunlukla unutulan bir işlemdir. Ancak önemli bir proje esnasında yaptığınız unutganlık tüm emeğinizin boşa gitmesine sebep olabilir.
eğer unix bir sunucuda çalışıyorsanız cron, gmail, mutt ve bash tüm dertlerinize derman olabilir. Gmail verdiği yüksek disk alanı yedekler için adeta biçilmiş kaptan. Veritabanı yedeklerini de unix araçlarıyla alıp gmail'e yönlendirmek sandığınız kadar zor değil.
işte basit bir veritabanı yedekleyici bash script:
#!/bin/bash
cd DIZIN
EPOSTA="[email protected]";
MESAJ="/home/sen/mail_icerigi.txt";
TARIH=`TARIH +%Y%m%d` ;
VT_ADI="veritabani_adi";
VT_SIFRE="veritabani_sifresi";
KULLANICI="veritabani_kullanicisi";
KONU="YEDEK";
mysqldump $VT_ADI DIZIN/$VT_ADI$TARIH.sql -h mysql.sunucu.com -u $KULLANICI -p$VT_SIFRE
gzip DIZIN/$VT_ADI$TARIH.sql
mutt -s $KONU -a DIZIN/$VT_ADI$TARIH.sql.gz $EPOSTA $MESAJ
rm DIZIN/$VT_ADI$TARIH.sql.gz
evet bu kodu artık ne zaman çalıştırsak veritabani yedeğimiz epostamıza gidecektir. ama hayat cron ile daha güzel. Bırakalım cron bu işi bizim için belirli periyotlarla yapıversin.
tek yapmanız gereken crontab ile cron'a bir iş girmek. bunun için aşagıdaki komutu shell'de yazıp,
# crontab -e
karşımıza gelen metin editörüne şu satırı eklemek
0 05 * * * bash /home/sen/yukardaki_script_dosyası
dosyayı sadece kaydedip kapatıyoruz. Bundan sonra her sabah 05:00'da herkes mışıl mışıl uyurken veritabanı yedeğiniz gmailinizde.
Fire and Forget; artık web sitenizin yedekleri tıkır tıkır gmail hesabınızda. Ancak bu yedekleri gelen kutunuzda sürekli görmek sıkıcı olabilir. gmail'in süzgeçleri bu yedekleri alıp etiketleyip gelen kutunuzdan arşivinize rahatça taşıyabilir.
veritabanı yedeği yerine sadece web sitenizdeki dosyaları yedeklemek ise daha basit:
#!/bin/bash
EPOSTA="[email protected]";
MESAJ="/home/sen/mail_icerigi.txt";
tar -czf arsiv.tar.gz web_sitenizin_dizini
mutt -s $KONU -a arsiv.tar.gz $EPOSTA $MESAJ
rm arsiv.tar.gz
tabi yine bunu crontab ile cron'a giriyorsunuz.