Liste weiterer Kommandozeilentools
In dieser Rubrik werden verschiedene Kommandozeilentools aufgelistet, die sich ebenso in Batch-Dateien verwenden lassen. Es sind zumeist Portierungen bekannter Unix-Kommandozeilentools oder aber Freeware für Windows.
Alle genannten Programme gehören nicht(!) zum Umfang von MS Windows.
Beispiele: Mysql-DB wiederherstellen
Dieses Skript inkludet dieselbe Konfiguration, wie das Backup-Skript.Es arbeitet interaktiv.
- Es wird nach dem Backup-Set gefragt (es werden alle vorhandenen Datenbanken aufgelistet)
- anschliessend werden die zu dieser Datenbank gehörenden Backups angezeigt.
- Es wird nach dem Namen der Datenbank gefragt, in die der Dump importiert werden soll. Default ist dieselbe Datenbank. Wird eine nicht existierende DB angegeben, wird diese zhunächst angelegt.
@echo off
rem ======================================================================
::
:: Restore einer Mysql-DB
::
:: erfordert:
:: mysql, gzip
::
rem ======================================================================
rem ------------------------------------------------------
:: CONFIG
rem ------------------------------------------------------
set about=Axels Mysql-Restore
call config_mysql.bat
rem ------------------------------------------------------
:: MAIN
rem ------------------------------------------------------
TITLE %about%
echo.
echo ===== %about% =====
echo.
echo ===== Auswahl des Backup-Sets
echo --- vorhandene Mysql-Datenbanken:
for /F "tokens=* skip=1" %%a in ('echo show databases ^| mysql %dbparams%' ) do echo %%a
echo %dball%
echo.
echo Das Backup welcher Datenbank soll wiederhergestellt werden?
set /P dbname="Datenbank-Name > "
echo.
echo --- vorhandene Mysql-Backups:
dir "%dirBackup%\%dbname%_*.gz" | findstr "^[0-9]"
echo.
echo Welches Backup soll eingespielt werden?
set /P dumpfile="Dateiname > "
echo.
set dboverwrite=%dbname%
if "%dbname%"=="%dball%" set dboverwrite=
if NOT "%dboverwrite%"=="" (
echo "Welche Datenbank soll ueberschrieben werden (default=%dboverwrite%)?"
set /P dboverwrite="Datenbank-Name > "
echo.
)
echo show databases | mysql %dbparams% | findstr "^%dboverwrite%$" || (
echo HINWEIS:
echo Der angegebene neue Datenbankname existiert nicht.
echo.
echo --- lege Datenbank %dboverwrite% an ...
echo create database %dboverwrite% | mysql %dbparams%
echo rc=%ERRORLEVEL%
echo.
)
dir "%dirBackup%\%dumpfile%" >nul 2>&1 && (
TITLE restore - %about%
echo --- Stelle Datenbank %dbname% wieder her...
if "%dbname%"=="" echo Es wird die komplette DB wiederhergestellt.
echo DB=%dboverwrite%
echo Backup=%dumpfile%
gzip -dc "%dirBackup%\%dumpfile%" | mysql %dbparams% %dboverwrite%
echo rc=%ERRORLEVEL%
) || echo FEHLER: Dateiname des Backups nicht gefunden.
:end
TITLE fertig - %about%
echo.
echo --- Fertig - schliesse in 10 Sek.
ping -n 11 localhost >nul
rem ======================================================================