Merhaba,

Aşağıda yayınladığımız script ile MySql veri tabanlarınızın tümünü yedekleyip tarihe göre sıkıştırılmış hale getirir. 
İlgili alan değişiklerini (Set) leri kendinize göre düzenleyip bir batch (*.bat) dosya halinde kaydedip Görev Zamanlayıcı ya günlük yedek alınmak üzere ekleyebilirsiniz.
Gerekli ek yazılım: 7za.exe

Yardım ihtiyacınız için destek[at]gul.net.tr ye mail atabilirsiniz. 10.09.2017

::::::: Başlangıç
:: Tarih atması
set year=%DATE:~6,4%
set mnt=%DATE:~3,2%
set day=%DATE:~0,2%

set hr=%TIME:~0,2%
set min=%TIME:~3,2%

IF %day% LSS 10 SET day=0%day:~1,1%
IF %mnt% LSS 10 SET mnt=0%mnt:~1,1%
IF %hr% LSS 10 SET hr=0%hr:~1,1%
IF %min% LSS 10 SET min=0%min:~1,1%

set backuptime=%year%-%mnt%-%day%-%hr%-%min%
echo %backuptime%

:: Tüm yetkilere sahip root kullanıcı
set dbuser=root

:: Kullanıcı Şifresi
set dbpass=şifre

:: Hata - Rapor Dosyası (Ör: d:-mysqlyedek-dumperrors.txt)
set errorLogPath="Hata Dosyası Dizin adını girin"

:: MySqldump.exe seti (Ör: d:-mysql-bin-mysqldump.exe)
set mysqldumpexe="MySql bin dizin adını girin"

:: yedekleme dosyası dizini (Ör: d:-mysqlyedek)
set backupfldr=Yedekleme dizini adını girin 

:: Data Kalsörü (Ör: d:-mysqldata)
set datafldr="MySql Data Dizini"

:: Çalıştırılabilir Zip dosyası (Ör: d:-zipper-7za.exe)
set zipper="Zip dosyasının dizin girin"

:: Kaç günlük eski kayıtlar silinsin 
set retaindays=30

:: Ayarlar Bitiş



:: MySql Full Backup Başlangıç

:: data klasörüne geçiş
pushd %datafldr%

echo "Mysqldump.exe ye yedel sql lerin oluşturulması"

:: Ayrıntılı hataları görmek için "on" yaplılabilir.
@echo off

FOR /D %%F IN (*) DO (

IF NOT [%%F]==[performance_schema] (
SET %%F=!%%F:@002d=-!
%mysqldumpexe% --user=%dbuser% --password=%dbpass% --databases --routines --log-error=%errorLogPath% %%F > "%backupfldr%%%F.%backuptime%.sql"
) ELSE (
echo performance_schema veri tabanının es geçilmesi
)
)

echo ".sql dosyalrının sıkıştırılması"


:: alınan yedeklerin zip hale getirlimesi, sıkıştırılmadan 
%zipper% a -tzip "%backupfldr%FullBackup.%backuptime%.zip" "%backupfldr%*.sql"

:: Alınan Yedeğin ham halinin silinmesi
echo "*.sql DELETE"
del "%backupfldr%*.sql"

:: X günden eski dosyaların silinmesi yedek dizininden silinmesi
echo "LAST DATE : "%retaindays%" Days"

Forfiles -p %backupfldr% -s -m *.* -d -%retaindays% -c "cmd /c del /q @path"

echo "done"

::Ana dizine geri dönüş.
popd

:::::::::: Bitiş