Arquivo de lote Linux semelhante ao arquivo de lote do Windows (para fazer backup de um banco de dados)

0

Eu tenho aqui o arquivo de lote no windows, eu quero aplicar o mesmo no linux. Posso pedir sua ajuda para executá-lo no linux. Abaixo está o arquivo em lotes para o Windows:

@echo off

TITLE Upload Masterlist

set /p answer=Do you want continue? [Y/N]:

if %answer%==Y goto G
if %answer%==y goto G
if %answer%==N goto EndoF
if %answer%==n goto EndoF

:EndoF
goto:eof

:G
cls
set MYSQL_HOME=mysql>C:\xampp\mysql\bin\mysql.exe
set database_name=ppn
set user_name=root
set password=
set sql_file=C:\LEGAL_BACKUP\Masterlist.sql

%MYSQL_HOME% -u %user_name% -p %password% -D %database_name% < %sql_file%


echo.
echo. Uploading Masterlist is successfully done..............!
echo.&pause&goto:eof

Agradecemos antecipadamente

Jet

    
por jet 25.01.2013 / 07:51

2 respostas

0

Parece que seu arquivo de lote foi projetado para fazer backup de um banco de dados MySQL na máquina local. Embora seja possível traduzir os comandos .bat em comandos bash equivalentes, os nomes dos executáveis, os diretórios, etc., seriam todos diferentes.

Em vez disso, você pode querer tentar MySQL-Maint , um script bash de código aberto e amigável ao Linux projetado para fazer exatamente o que você está fazendo.

    
por Travis G. 25.01.2013 / 08:16
0

Tente isto:

#!/bin/bash

read -p "Do you want to continue? " -n 1
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
    exit 1
fi

MYSQL_BIN=/usr/bin/mysql
DB_NAME=ppn
DB_USER=root
DB_PASS=pass
SQL_FILE=/home/user/sqlfile.sql

$MYSQL_BIN -u$DB_USER -p$DB_PASS $DB_NAME < $SQL_FILE
echo "Uploading Masterlist is successfully done..............!"

unset MYSQL_BIN
unset DB_NAME
unset DB_USER
unset DB_PASS
unset SQL_FILE
    
por onik 25.01.2013 / 09:54