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.
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.
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.
$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.
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).
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.
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).
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.
Finalmente, si revisa la base de datos, verá que todos los mensajes se han insertado en la tabla messagereport, como muestra la Figura 8.
More information
- Script MSSQL
- Script Powershell para leer trabajos por lotes de MySQL
- Programador de tareas