Para efetuar o backup apenas da estutura das tabelas e procedures/functions - ou gerar na verdade um script de criação da estrutura - pode-se usar o utilitário MYSQLDUMP (que faz parte da própria instalação padrão do MySQL) com os seguintes parâmetros:
--no-data -> Indica que deve ser feita apenas o script de criação das tabelas - sem os inserts
--routine -> Indica que as procedures/fucntions deve ser exportadas
Sintaxe:
mysqldump.exe -u<usuario> -p<password> --no-data --routines --databases <banco> --quick --result-file=<arquivo>
onde:
<usuario> - usuário com permissão de acesso ao banco
<password> - senha do usuário
<banco> - banco que será exportado
<arquivo> - caminho e nome do arquivo onde os dados deverão ser exportados
Exemplo:
mysqldump.exe -uroot -p --no-data --routines --databases mysql --quick --result-file=c:\ESTRUTURA_MYSQL.sql
No exemplo acima, a senha será solicitada pelo utilitário no momento da execução
Dado um diretório contando diversos arquivos compactados (zip) - por exemplo, um diretório contendo backups diários - extrair de alguns destes arquivos, arquivos que correspondam a uma máscara específica.
Para isto, podemos combinar ao unzip, os comandos for e ls, como abaixo:
Sintaxe:
for i in $(ls <relacao_arquivos>); do unzip -j $i <mascara_arquivo>; done
Exemplo:
for i in $(ls /backup_diario/201408*.zip); do unzip -j $i PROCESSAMENTO/2014????txt; done
No exemplo acima, são extraídos dos arquivos zip, que atendem a máscara 201408*.zip, apenas os arquivos que originalmente quando compactados estavam na pasta PROCESSAMENTO e que atendem a máscara informada (2014????.txt). Os arquivos são extraídos sem o diretório original e colocados no diretório aonde o comando está sendo executado (opção -j).