Yok hocam, yapmak istediğim o şekilde hepsini bir bütün halinde çıktı almak değil. Her veritabanını kendi başına listeleyerek yedeklemek istiyorum. Diğer türlü o veritabanı tek parça olacak ve hayli şişecek. Phpmyadmin'e onu yüklemek gibi bir zulüm yok.
Aşağıdaki kodu kullanabilirsin,
sh mysqlyedekle.sh mysqlrootsifren şeklinde çalıştırmalısın, /root/sqlyedek klasörüne tüm veritabanlarını ayrı ayrı yedekler, ayrıca tarih vererek tek dosya halinde tar.gz ile sıkıştırıp /root dizinine kaydeder.
#!/bin/sh
echo "root dizininde sqlyedek klasoru var mi."
if [ -d '/root/sqlyedek' ]; then
echo "root dizininde sqlyedek klasoru var."
else
echo "root dizininde sqlyedek klasoru yok ama simdi olusturuyorum."
mkdir /root/sqlyedek
fi
echo
echo "sql yedek almaya basliyor"
find /var/lib/mysql/ -type d | cut -d. -f1 | cut -d/ -f5 > /root/list
_db="$(gawk -F: '{ print $1 }' /root/list)"
for u in $_db
do
mysqldump -u root -p$1 ${u} > /root/sqlyedek/${u}.sql
echo "HAZIR > ${u}"
done
zaman=`date +"%d.%m.%Y-%T"`
tar cvzf /root/$zaman-mysql.tar.gz '/root/sqlyedek'
echo "TUM VERI TABANLARI YEDEKLENDI"
echo "DOSYA YOLU : /root/$zaman-mysql.tar.gz"