Podemos usar comandos bash (script), awk e mysql juntos para de modo a facilitar o dia-a-dia do usuário.
Comandos bash, mysql e awk podem ser concatenados através de pipe '|'. Abaixo alguns exemplos:
- Efetuar o 'dump' de algumas tabelas de um banco de dados:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
1) Cria um 'comando-mysql' usando o comando echo (bash), que irá gerar uma lista de todas as tabelas iniciadas por abobrinha
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
2) O alias mysqlrk chama o mysql usando o comando gerado pelo bash:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
3) O resultado do mysql (relação de tabelas) é passado para o awk, que apenas imprime linha a linha (na verdade, este comando não se faz necessário, mas eu o coloquei como uma forma ilustrativa do que pode ser feito:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
4) A saída do awk é então enviada ao comando mysqldump que gera um dump das tabelas informadas, direcionando estas informações para o arquivo indicado:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
- Excluir tabelas de um banco de dados:
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
1) Cria um 'comando-mysql' usando o comando echo (bash), que irá gerar uma lista de todas as tabelas iniciadas por abobrinha e terminada por old
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
2) O alias mysqlrk chama o mysql usando o comando gerado pelo bash:
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
3) O resultado do mysql (relação de tabelas) é passado para o awk, que concatena a cada nome de tabela a instrução de exclusão da tabela (drop table):
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
4) A saída do awk é então enviada ao alias mysqldrk que executa as instruções recebidas, e grava o log no arquivo de log
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log