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.

Vídeo 1 - Como importar arquivos SQL para o seu banco de dados usando Ozeki SMS Gateway (Tutorial em vídeo)

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.

criar tabela messagereport
Figura 1 - Criar tabela messagereport

Salve o seguinte script PowerShell como "dbimport.ps1"

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.

criar o arquivo de script
Figura 2 - Criar o arquivo de script

$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.

colar o script no arquivo
Figura 3 - Colar o script no arquivo

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).

alterar comando mysql
Figura 4 - Alterar comando MySQL

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.

executar script powershell
Figura 5 - Executar script PowerShell

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).

script executa consultas sql
Figura 6 - Script executa consultas SQL

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.

arquivos sql movidos para pasta processed
Figura 7 - Arquivos SQL movidos para a pasta Processed

Finalmente, se você olhar no banco de dados, pode ver que todas as mensagens foram inseridas na tabela messagereport, como mostra a Figura 8.

mensagens inseridas no banco de dados
Figura 8 - Mensagens inseridas no banco de dados

More information