Selamlar,

Bu uygulama, mysql veri tabanlarınızın sql çıktısını aldıktan sonra tar.gz formatında sıkıştırıp belirttiğimiz ftp adresine yüklemenizi sağlar.

Centos işletim sisteminde denenmiştir. Freebsd için birkaç değişiklik yapmanız gerekebilir.

Mysql root şifrenizi bilmiyorsanız şu uygulamayı kurarak kolayca sıfırlayabilirsiniz.



#!/bin/sh

# FTP SIFRENIZI /root/.ydkftp dosyasindan degistirebilirsiniz.
#eger hata verirse asagidaki kodlari basindaki kareyi kaldirarak uygulayin

# wget ftp://rpmfind.net/linux/epel/5/x86_64/ncftp-3.2.2-1.el5.x86_64.rpm
# rpm -Uvh ncftp-3.2.2-1.el5.x86_64.rpm

# Yuklenecek ftp dizinini asagidaki satirdan belirleyin
FTPDIZIN="/public_html"



if [ -f '/root/.ydkftp' ]; then
echo "tamam"
else
echo "Ftp host adresini yada ip adresini yazin :"
read host
echo "Ftp kullanici adini yazin :"
read kadi
echo "Ftp sifresini yazin :"
read sifre

touch /root/.ydkftp
echo "host $host" >> /root/.ydkftp
echo "user $kadi" >> /root/.ydkftp
echo "pass $sifre" >> /root/.ydkftp
fi


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"

ls -l /var/lib/mysql/ | awk ' /^d/ {print $9}' > /root/list
_USERS="$(gawk -F: '{ print $1 }' /root/list)"
for u in $_USERS
do

mysqldump -u root -p$1 ${u} > /root/sqlyedek/${u}.sql
echo "HAZIR > ${u}"
done

zaman=`date +"%d_%m_%Y"`
tar cvzf /root/$zaman-yedek-mysql.tar.gz '/root/sqlyedek'


YUKLENENDIZIN="/root/$zaman-yedek-mysql.tar.gz"

FTP="/usr/bin/ncftpput"
AUTHFILE="/root/.ydkftp"

CMD="$FTP -m -R -f $AUTHFILE $myf $FTPDIZIN $YUKLENENDIZIN"

$CMD


Yada daha kısa yolu

wget http://www.bilalkisa.com.tr/tools/kisayol/mysqlftp.sh
sh mysqlftp.sh mysqlrootsifreniz


Verileriniz değerlidir.