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.