Merhabalar bugün sizlere Centos Plesk cron ile mysql database otomatik yedekleme nasıl yapılır onun kodlarını paylaşıp dilim döndüğüncede yazmaya çalışacağım.

Plesk kullanan root ” yöneticiler ” database yedeklemek için bir çok yöntem kullanırlar, her yiğidin yoğurt yiğişi farklıdır neticede bende şirket için farklı bir şekilde yoğurt yeme şeklini benimseyip alt kısımdaki bash scriptini yazdım.

Ne gereke vardıki?

Diyenler olabilir elbette bu işlemleri plesk üzerinden zamanlanmış görev şeklinde oluşturup full yedek alabilirsiniz, istediğiniz gib derleyebilirsinizde ama dediğim gibi ben yoğurdu böyle sevdim :)).

Neler yapılabilir ?

Bu alttaki kodları kendi istediğiniz gibi geliştirebilirsiniz elbette. Bir ek yapıp belirli zaman aralığına gelenleri silebilir, belirli ay dönemlerini sıkışıtırıp farklı bir klasöre taşıyabilirsiniz, dediğim gbii hayal ve kod gücünüze kalmış gerisi.

Kod çalışıyomu peki ?

Elbette alt kısımda betimlediğim script sorunsuz olarak çalışmaktadır.

Çalışan Kod Bloğu

 
#!/bin/bash
DATE=`date +%Y_%m_%d-%H_%M`
USER=admin
PASSWORD=`cat /etc/psa/.psa.shadow`
RESULT=`mysql -u$USER -p$PASSWORD -e "SHOW DATABASES"`
for i in $RESULT
do
 #echo $i
 if [ $i != "information_schema" ] && [ $i != "Database" ] && [ $i != "apsc" ] && [ $i != "horde" ] && [ $i != "mysql" ] && [ $i != "psa" ] && [ $i != "roundcubemail" ] && [ $i != "performance_schema" ] && [ $i != "phpmyadmin_rZwDter6S4mp" ] && [ $i != "" ];then
 NAME=${i}__$DATE
 db_size=$(mysql -u$USER -p$PASSWORD --silent --skip-column-names -e "SELECT ROUND(SUM(data_length), 0) FROM information_schema.TABLES WHERE table_schema='$i';");
 #echo $db_size
 mysqldump -u$USER -p$PASSWORD $i | pv --progress --size $db_size > /home/mysql_daily_backup/$NAME.sql
 fi
done
#echo $DATE
#echo $RESULT