Script PowerShell
Este script pode ser usado para importar automaticamente arquivos SQL com mais de 20 minutos para o banco de dados MySQL. É útil se você habilitar o registro de texto SQL para configurações de alto desempenho. Para executar este script, você deve salvá-lo com a extensão .ps1 e habilitar a execução de scripts PowerShell no Windows no Editor de Política de Grupo (ou você deve executar o script como Administrador).
Dominando a automação de scripts PowerShell (tutorial em vídeo)O procedimento de configuração de um trabalho em lote automático do MySQL utilizando um script PowerShell para importar arquivos SQL para o seu banco de dados usando o Ozeki SMS Gateway é demonstrado neste guia em vídeo. Você pode gerenciar facilmente seus registros de mensagens e manter um banco de dados limpo para suas comunicações SMS com a ajuda desta solução. Ao final deste vídeo, você entenderá claramente como usar o script PowerShell incluído para automatizar o processo de importação de arquivos SQL para o seu banco de dados MySQL, mantendo um arquivo de comunicação SMS organizado e eficiente.
Crie a seguinte tabela MySQL
CREATE TABLE messagereport ( logid int not null auto_increment primary key, messageid varchar(64), fromconnection varchar(64), fromaddress varchar(64), requestedconnection varchar(64), toconnection varchar(64), toaddress varchar(64), messagetext varchar(1024), route varchar(64), datecreated datetime, datedeliverytoconnectionsuccess datetime, datedeliverytoconnectionfailed datetime, deliverytoconnectionreference varchar(256), deliverytoconnectionstatusmessage varchar(1024), datedeliverytorecipientsuccess datetime, datedeliverytorecipientfailed datetime, deliverytorecipientstatusmessage varchar(1024), status varchar(64), INDEX(messageid) ) charset = utf8;
O primeiro passo é criar a tabela messagereport no banco de dados. Todas as mensagens enviadas e recebidas serão armazenadas nesta tabela e atualizadas de acordo com seu status. Se você já criou esta tabela, pode pular esta etapa. Copie o script de criação de tabela acima e execute-o no seu banco de dados, como você pode ver na Figura 1.
O próximo passo é criar o arquivo "dbimport.ps1" na pasta C:\Ozeki, como mostrado na Figura 2. Este arquivo conterá o script que executa consultas SQL periodicamente no banco de dados.
$ProcessedDir = "C:\Ozeki\Processed" New-Item -ItemType Directory -Force -Path $ProcessedDir #loop infinito while (1) { #listar arquivos com mais de 20 minutos #certifique-se de que o tempo seja maior que o período usado na configuração de relatório Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} | Foreach-Object { #carregar o conteúdo do arquivo no banco de dados mysql Write-Output $_.FullName $Text = Get-Content -Path $_.FullName Write-Output $Text | C:\'Program Files'\MySQL\'MySQL Server 5.7'\bin\mysql -uroot -pmypass mydatabase #mover o arquivo processado para o diretório de processados Move-Item -Path $_.FullName -Destination $ProcessedDir } #dormir por 5 segundos Start-Sleep -s 5 }
Copie o script PowerShell acima e cole-o no arquivo "dbimport.ps1", como você pode ver na Figura 3.
Finalmente, modifique o script de acordo com o seu próprio banco de dados MySQL. No caminho, altere o número da versão do banco de dados MySQL. Insira o nome de usuário e a senha que deseja usar e substitua "mydatabase" pelo nome do seu banco de dados (Figura 4).
Executar o script como administrador
powershell -ExecutionPolicy Bypass -File dbimport.ps1
Agora execute o script no PowerShell executando o comando acima, como você pode ver na Figura 5.
Você pode ver que o script executa todos os arquivos SQL que têm mais de 20 minutos na pasta 'C:\Ozeki\Reporting_SQL' um por um (Figura 6).
Cada arquivo SQL que o script executou é movido para a pasta Processed para que nenhuma consulta seja perdida (Figura 7). A partir daqui, você pode excluí-los manualmente se não precisar mais deles.
Finalmente, se você olhar no banco de dados, pode ver que todas as mensagens foram inseridas na tabela messagereport, como mostra a Figura 8.
More information
- Script MSSQL
- Script Powershell para ler tarefa em lote MySQL
- Agendador de tarefas