Bugün bir bash Script sunacagim, bir serverdeki tüm db leri teker teker yedekleye bilmek icin.
#!/bin/bash echo "Save all db's:" DBASELIST=`mktemp` # tüm db lerin isimleri ni topla # sifreburaya yazan yere root sifrenizi girin (script de iki kez kullaniliyor) mysqlshow -sifreburaya | awk '{print $2}' | grep -v Databases | sort >$DBASELIST #Backup hagi klasör icine yüklensin cd /data mkdir -p `date +%Y%m%W` cd `date +%Y%m%W` for x in `cat $DBASELIST`; do echo "Db: $x yedekleniyor"; mysqldump --opt -psifreburaya $x >$x.sql; done; echo "Eski .gz-dosyalarini sil" rm *.gz echo "dosyalari SIKISTIR:" gzip *
bukadar bunu linux makinanida herhangi bir yere yükleyin dosyayi .sh diye kayit edin ardindan
chmod 777 dosya.sh
elden calistirmak icin
sh dosya.sh
cronjob olarakda calistira bilirsiniz.
kolay gelsin
2 Comments
fakat şöyle bir şey var:
mysqldump –all-databases
Bir de böyle bir sql dosyasından, veritabanlarını tek tek alma işi arada gerekebiliyor:
http://www.gokceyalcin.com/mysql-dump-dosyasindan-teker-teker-dbleri-cikartma
mysqldump –all da sorun iste yazinda belirttigin gibi dosya cok sise bilior sonra ayikla pirincin tasini:) ama vermis oldugun yöntem bu sorunu yasiyanlara güzel bir (en iyi) cözüm.
yinede ben dbleri tek tke kayit etmeye devam:)
sagol