Script de PowerShell

Este script puede utilizarse para importar automáticamente archivos SQL con más de 20 minutos de antigüedad en la base de datos MySQL. Es útil si habilita el registro de texto SQL para configuraciones de alto rendimiento. Para ejecutar este script, debe guardarlo con la extensión .ps1 y habilitar la ejecución de scripts de PowerShell en Windows mediante el Editor de directivas de grupo (o debe ejecutar el script como Administrador).

Dominando la automatización de scripts de PowerShell (tutorial en video)

Este video demuestra el procedimiento para configurar un trabajo por lotes automático de MySQL utilizando un script de PowerShell para importar archivos SQL en su base de datos con Ozeki SMS Gateway. Con esta solución, puede gestionar fácilmente sus registros de mensajes y mantener una base de datos limpia para sus comunicaciones SMS. Al final de este video, comprenderá claramente cómo usar el script de PowerShell incluido para automatizar el proceso de importación de archivos SQL en su base de datos MySQL, manteniendo un archivo de comunicación SMS organizado y eficiente.

Video 1 - Cómo importar archivos SQL a su base de datos usando Ozeki SMS Gateway (Tutorial en video)

Cree la siguiente tabla en 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;

El primer paso es crear la tabla messagereport en la base de datos. Todos los mensajes entrantes y salientes se almacenarán en esta tabla y se actualizarán según su estado. Si ya ha creado esta tabla, puede omitir este paso. Copie el script de creación de tabla anterior y ejecútelo en su base de datos como se muestra en la Figura 1.

crear tabla messagereport
Figura 1 - Crear tabla messagereport

Guarde el siguiente script de PowerShell como "dbimport.ps1"

El siguiente paso es crear el archivo "dbimport.ps1" en la carpeta C:\Ozeki, como se muestra en la Figura 2. Este archivo contendrá el script que ejecutará consultas SQL periódicamente en la base de datos.

crear el archivo de script
Figura 2 - Crear el archivo de script

$ProcessedDir = "C:\Ozeki\Processed"
New-Item -ItemType Directory -Force -Path $ProcessedDir

#bucle infinito
while (1) {
	#listar archivos con más de 20 minutos de antigüedad
	#asegúrese de que el tiempo sea mayor que el período configurado en el informe
	Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | 
		Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} |
	
	Foreach-Object {
		#cargar el contenido del archivo en la base de datos 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 el archivo procesado al directorio de procesados
		Move-Item -Path $_.FullName -Destination $ProcessedDir
	}
	
	#esperar 5 segundos
	Start-Sleep -s 5
}

Copie el script de PowerShell anterior y péguelo en el archivo "dbimport.ps1", como se muestra en la Figura 3.

pegar el script en el archivo
Figura 3 - Pegar el script en el archivo

Finalmente, modifique el script según su propia base de datos MySQL. En la ruta, cambie el número de versión de la base de datos MySQL. Ingrese el nombre de usuario y la contraseña que desea usar, y reemplace "mydatabase" con el nombre de su base de datos (Figura 4).

cambiar comando mysql
Figura 4 - Cambiar comando MySQL

Ejecute el script como administrador

powershell -ExecutionPolicy Bypass -File dbimport.ps1

Ahora ejecute el script en PowerShell con el comando anterior, como se muestra en la Figura 5.

ejecutar script de powershell
Figura 5 - Ejecutar script de PowerShell

Puede ver que el script ejecuta todos los archivos SQL con más de 20 minutos en la carpeta 'C:\Ozeki\Reporting_SQL' uno por uno (Figura 6).

script ejecuta consultas sql
Figura 6 - Script ejecuta consultas SQL

Cada archivo SQL que el script ha ejecutado se mueve a la carpeta Processed para que no se pierdan consultas (Figura 7). Desde aquí, puede eliminarlos manualmente si ya no los necesita.

archivos sql movidos a carpeta procesados
Figura 7 - Archivos SQL movidos a carpeta procesados

Finalmente, si revisa la base de datos, verá que todos los mensajes se han insertado en la tabla messagereport, como muestra la Figura 8.

mensajes insertados en la base de datos
Figura 8 - Mensajes insertados en la base de datos

More information