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