Daha Önceki SSH ile Sql Yedekeleme ile ilgili Makalemde Manuel Olarak yedeklemeden Bahsetmistim Simdi ise Asagidaki scripti kullanarak butun site yerine sadece SQL'in yedegini otomatik olarak istediginiz tarihe ve dosya ya ayarlama yaparak alabilirsiniz..Kullanabilmeniz icin root yetkinizin olmasi sarttir sql in buyuklugu ne olursa olsun eksiksiz olarak yedekliyebilirsiniz isterseniz belirttiginiz ftp adresine yada sunucu adresine yada localhost daki yani kendi sunucunuzdaki belirttiginiz herahangi bir dizine de sql yedeginizi yorulmadan hergun backupliyabilirsiniz

Kurulum:

Server'a root olarak giris yapin

cd /root

vi /root/backup.sh

Asagidaki Scripti burda olusturmus oldugumuz backupo.sh dosyasina yapistiriyoruz ve
gerekli ayarlari yapip

:wq

diyerek kaydedin ve cikin sonra calistirma yetkisi atiyalim

chmod +x /root/backup.sh

root kullanicisina bu yetkiyi verdikten sonra backup.sh scriptimizi crona ekliyelim

crontab -e

daha sonra

00 00 * * * /root/backup.sh

seklinde cronumuzu hergun gece saat 12 de sql imizi tam anlamiyla yedeklemesi icin cronumuzu calisitiriyoruz.

CODE:
  1. #!/bin/sh
  2.  
  3. # ========> Ayarlar>================
  4.  
  5. # DB Adi
  6. databases="db_adi"
  7.  
  8. # yedegin yuklenecegi yer
  9. backupdir=/root/yedeklerim
  10. mysqldumpcmd=/usr/bin/mysqldump
  11.  
  12. # db sifresi
  13. userpassword=" --user=User_name --password=Sifre_buraya"
  14.  
  15. dumpoptions=" --quick --add-drop-table --add-locks --extended-insert --lock-tables"
  16.  
  17. gzip=/bin/gzip
  18. uuencode=/usr/bin/uuencode
  19. mail=/bin/mail
  20.  
  21. # Backupun e-maille gonderilmesini istiyormusun?? "y"= Evet "n"= Hayir
  22. sendbackup="n"
  23. subject="Serverdan yedekleme"
  24. mailto="wbturk@wbturk.com"
  25.  
  26. # Yedegin baska bir FTP hesabina yuklenmesini istermisin? "y"= Evet "n"= Hayir
  27. ftpbackup="n"
  28. ftpserver="ftp.domain.tld"
  29. ftpuser="ftp_username"
  30. ftppasswd="ftp_pass"
  31. # Uzak FTP dosya yolunu yazin ( ornek C:\yedeklerim
  32. ftpdir="/root/yedeklerim"
  33.  
  34. #========> Genel ayarlar.>====================
  35.  
  36. # Haftanin hangi gunu? (0-6)
  37. DOW=`date +%w`
  38.  
  39. # Belirlenen klasor yoksa kendin olustur.
  40. mkdir -p ${backupdir}
  41. if [ ! -d ${backupdir} ]
  42. then
  43. echo "yerel klasor: ${backupdir}"
  44. exit 1
  45. fi
  46.  
  47. echo "Dumping MySQL Databases"
  48. for database in $databases
  49. do
  50. $mysqldumpcmd $userpassword $dumpoptions $database> ${backupdir}/${DOW}-${database}.sql
  51. done
  52.  
  53. echo "Compressing Dump Files"
  54. for database in $databases
  55. do
  56. rm -f ${backupdir}/${DOW}-${database}.sql.gz
  57. $gzip ${backupdir}/${DOW}-${database}.sql
  58. done
  59.  
  60. if [ $sendbackup = "n" ]
  61. then
  62. for database in $databases
  63. do
  64. $uuencode ${backupdir}/${DOW}-${database}.sql.gz> ${backupdir}/${database}.sql.gz
  65. $mail -s "$subject : $database" $mailto <${backupdir}/${DOW}-${database}.sql.gz
  66. done
  67. fi
  68.  
  69. echo "FTP file to $ftpserver FTP server"
  70. if [ $ftpbackup = "y" ]
  71. then
  72. for database in $databases
  73. do
  74. echo "==> ${backupdir}/${DOW}-${database}.sql.gz"
  75. ftp -n $ftpserver <
  76. user $ftpuser $ftppasswd
  77. bin
  78. prompt
  79. cd $ftpdir
  80. lcd ${backupdir}
  81. put ${DOW}-${database}.sql.gz
  82. quit
  83. EOF
  84. done
  85. fi
  86.  
  87. ls -l ${backupdir}
  88. echo "Backup Bitmistir. Allah yardimciniz olsun ..!"
  89. exit

umarim faydasi dokunur kolay gelsin.

Favorilerinize Ekleyin.
  • BlinkList
  • del.icio.us
  • Digg
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • blogmarks
  • Blue Dot
  • Furl
  • Netscape
  • NewsVine
  • Reddit
  • Shadows
  • Technorati
  • YahooMyWeb
  • Fark
  • feedmelinks
  • Fleck
  • kick.ie
  • LinkaGoGo
  • Linkter
  • MyShare
  • Spurl
  • Webride