Como posso obter consultas SQL para mostrar no arquivo de saída?

1

Eu tentei executar um conjunto de consultas a partir de um script de shell enquanto captava a entrada (consulta SQL) e a saída no arquivo de log.

Mas a consulta de entrada não é exibida junto com a saída. Apenas as saídas estão sendo capturadas no arquivo de log. Existe uma maneira de capturar a consulta de entrada junto com a entrada correspondente?

Eu defini echo on , mas ainda não funciona.

    
por Pallvi Mahajan Sapen 07.11.2013 / 16:46

2 respostas

1

Se o seu script de shell for bash ou sh, você pode tentar anexar a opção -x ao shebang e depois executar o script. Normalmente usado para depurar scripts de shell, ele imprimirá a próxima linha / comando antes de executar. Então, se você tem o script de exemplo abaixo, registra no arquivo logfile

#!/bin/bash -x
echo "Hello world!" >> logfile
echo "Second command!" >> logfile

E você executa o script como ./script 2>> logfile que o arquivo de log deve ler como:

+ echo 'Hello world!'
Hello world!
+ echo "Second command!" 
Second command!
    
por 07.11.2013 / 17:01
0

Seu cliente SQL provavelmente oferece uma opção para ecoar a consulta antes de exibir os resultados. Por exemplo, mysql tem a opção -v , que, quando usada uma vez, faz exatamente isso.

Entrada:

echo "select 1 from dual" | mysql -v --table --user=u --password=p --host=h

Saída:

--------------
select 1 from dual
--------------

+---+
| 1 |
+---+
| 1 |
+---+
    
por 07.11.2013 / 19:32