Script PowerShell
Ce script peut être utilisé pour importer automatiquement les fichiers SQL vieux de plus de 20 minutes dans la base de données MySQL. Il est utile si vous activez la journalisation SQL pour des configurations haute performance. Pour exécuter ce script, vous devez l'enregistrer avec l'extension .ps1, et vous devez activer l'exécution des scripts PowerShell pour Windows dans l'éditeur de stratégie de groupe (ou vous devez exécuter le script en tant qu'Administrateur).
Maîtriser l'automatisation des scripts PowerShell (tutoriel vidéo)
La procédure de configuration d'un travail par lots MySQL automatique utilisant un script PowerShell pour importer des fichiers SQL dans votre base de données avec Ozeki SMS Gateway est démontrée dans ce guide vidéo. Vous pouvez facilement gérer vos enregistrements de messages et maintenir une base de données propre pour vos communications SMS avec l'aide de cette solution. À la fin de cette vidéo, vous comprendrez clairement comment utiliser le script PowerShell inclus pour automatiser le processus d'importation de fichiers SQL dans votre base de données MySQL, en conservant une archive de communication SMS organisée et efficace.
Créez la table MySQL suivante
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;
La première étape consiste à créer la table messagereport dans la base de données. Tous les messages entrants et sortants seront stockés dans cette table et mis à jour selon leur statut. Si vous avez déjà créé cette table, vous pouvez ignorer cette étape. Copiez le script de création de table ci-dessus et exécutez-le dans votre base de données comme vous pouvez le voir sur la Figure 1.
Enregistrez le script PowerShell suivant sous "dbimport.ps1"
L'étape suivante consiste à créer le fichier "dbimport.ps1" dans le dossier C:\Ozeki comme illustré à la Figure 2. Ce fichier contiendra le script qui exécute périodiquement des requêtes SQL dans la base de données.
$ProcessedDir = "C:\Ozeki\Processed" New-Item -ItemType Directory -Force -Path $ProcessedDir #boucle infinie while (1) { #lister les fichiers vieux de plus de 20 minutes #assurez-vous que le temps est supérieur à la période utilisée dans la configuration de reporting Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} | Foreach-Object { #charger le contenu du fichier dans la base de données 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 #déplacer le fichier traité dans le dossier Processed Move-Item -Path $_.FullName -Destination $ProcessedDir } #pause de 5 secondes Start-Sleep -s 5 }
Copiez le script PowerShell ci-dessus et collez-le dans le fichier "dbimport.ps1" comme vous pouvez le voir sur la Figure 3.
Enfin, modifiez le script selon votre propre base de données MySQL. Dans le chemin, changez le numéro de version de la base de données MySQL. Entrez le nom d'utilisateur et le mot de passe que vous souhaitez utiliser, et remplacez "mydatabase" par le nom de votre base de données (Figure 4).
Exécutez le script en tant qu'administrateur
powershell -ExecutionPolicy Bypass -File dbimport.ps1
Maintenant, exécutez le script dans PowerShell en lançant la commande ci-dessus comme vous pouvez le voir sur la Figure 5.
Vous pouvez voir que le script exécute tous les fichiers SQL vieux de plus de 20 minutes dans le dossier 'C:\Ozeki\Reporting_SQL' un par un (Figure 6).
Chaque fichier SQL que le script a exécuté est déplacé dans le dossier Processed afin qu'aucune requête ne soit perdue (Figure 7). De là, vous pouvez les supprimer manuellement si vous n'en avez plus besoin.
Enfin, si vous regardez dans la base de données, vous pouvez voir que tous les messages ont été insérés dans la table messagereport comme le montre la Figure 8.
More information
- Script MSSQL
- Script Powershell pour lire un travail batch MySQL
- Planificateur de tâches