PowerShell-Skript

Dieses Skript kann verwendet werden, um automatisch SQL-Dateien, die älter als 20 Minuten sind, in die MySQL-Datenbank zu importieren. Es ist hilfreich, wenn Sie SQL-Textprotokollierung für Hochleistungskonfigurationen aktivieren. Um dieses Skript auszuführen, müssen Sie es mit der Erweiterung .ps1 speichern und die Ausführung von PowerShell-Skripten für Windows im Gruppenrichtlinien-Editor aktivieren (oder Sie müssen das Skript als Administrator ausführen).

PowerShell-Skript-Automatisierung meistern (Video-Tutorial)

In dieser Videoanleitung wird der Vorgang zum Einrichten eines automatischen MySQL-Batch-Jobs demonstriert, der ein PowerShell-Skript verwendet, um SQL-Dateien mit Ozeki SMS Gateway in Ihre Datenbank zu importieren. Mit dieser Lösung können Sie Ihre Nachrichtenaufzeichnungen einfach verwalten und eine saubere Datenbank für Ihre SMS-Kommunikation pflegen. Am Ende dieses Videos werden Sie genau verstehen, wie Sie das enthaltene PowerShell-Skript verwenden, um den Prozess des Imports von SQL-Dateien in Ihre MySQL-Datenbank zu automatisieren und so ein organisiertes und effektives SMS-Kommunikationsarchiv zu erhalten.

Video 1 - So importieren Sie SQL-Dateien mit Ozeki SMS Gateway in Ihre Datenbank (Video-Tutorial)

Erstellen Sie die folgende MySQL-Tabelle

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;

Der erste Schritt besteht darin, die Tabelle messagereport in der Datenbank zu erstellen. Alle ausgehenden und eingehenden Nachrichten werden in dieser Tabelle gespeichert und entsprechend ihrem Status aktualisiert. Wenn Sie diese Tabelle bereits erstellt haben, können Sie diesen Schritt überspringen. Kopieren Sie das oben stehende CREATE TABLE-Skript und führen Sie es in Ihrer Datenbank aus, wie Sie in Abbildung 1 sehen können.

messagereport-Tabelle erstellen
Abbildung 1 - messagereport-Tabelle erstellen

Speichern Sie das folgende PowerShell-Skript als "dbimport.ps1"

Der nächste Schritt besteht darin, die Datei "dbimport.ps1" im Ordner C:\Ozeki zu erstellen, wie in Abbildung 2 gezeigt. Diese Datei enthält das Skript, das regelmäßig SQL-Abfragen in der Datenbank ausführt.

Skriptdatei erstellen
Abbildung 2 - Skriptdatei erstellen

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

#Endlosschleife
while (1) {
	#Dateien auflisten, die älter als 20 Minuten sind
	#Stellen Sie sicher, dass die Zeit größer ist als der Zeitraum, den Sie in der Berichtskonfiguration verwendet haben
	Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | 
		Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} |
	
	Foreach-Object {
		#Inhalt der Datei in die MySQL-Datenbank laden
		Write-Output $_.FullName
		$Text = Get-Content -Path $_.FullName
		Write-Output $Text | C:\'Programme'\MySQL\'MySQL Server 5.7'\bin\mysql -uroot 
		-pmypass mydatabase
		
		#Die verarbeitete Datei in den Processed-Ordner verschieben
		Move-Item -Path $_.FullName -Destination $ProcessedDir
	}
	
	#5 Sekunden warten
	Start-Sleep -s 5
}

Kopieren Sie das oben stehende PowerShell-Skript und fügen Sie es in die Datei "dbimport.ps1" ein, wie Sie in Abbildung 3 sehen können.

Skript in die Datei einfügen
Abbildung 3 - Skript in die Datei einfügen

Passen Sie abschließend das Skript an Ihre eigene MySQL-Datenbank an. Ändern Sie im Pfad die Versionsnummer der MySQL-Datenbank. Geben Sie den Benutzernamen und das Passwort ein, das Sie verwenden möchten, und ersetzen Sie "mydatabase" durch den Namen Ihrer Datenbank (Abbildung 4).

MySQL-Befehl ändern
Abbildung 4 - MySQL-Befehl ändern

Führen Sie das Skript als Administrator aus
powershell -ExecutionPolicy Bypass -File dbimport.ps1

Führen Sie nun das Skript in der PowerShell aus, indem Sie den oben gezeigten Befehl ausführen, wie in Abbildung 5 dargestellt.

PowerShell-Skript ausführen
Abbildung 5 - PowerShell-Skript ausführen

Sie können sehen, dass das Skript alle SQL-Dateien, die älter als 20 Minuten sind, im Ordner 'C:\Ozeki\Reporting_SQL' nacheinander ausführt (Abbildung 6).

Skript führt SQL-Abfragen aus
Abbildung 6 - Skript führt SQL-Abfragen aus

Jede SQL-Datei, die das Skript ausgeführt hat, wird in den Ordner "Processed" verschoben, damit keine Abfragen verloren gehen (Abbildung 7). Von hier aus können Sie sie manuell löschen, wenn Sie sie nicht mehr benötigen.

SQL-Dateien in den Processed-Ordner verschoben
Abbildung 7 - SQL-Dateien in den Processed-Ordner verschoben

Schließlich können Sie in der Datenbank sehen, dass alle Nachrichten in die Tabelle "messagereport" eingefügt wurden, wie in Abbildung 8 dargestellt.

Nachrichten in die Datenbank eingefügt
Abbildung 8 - Nachrichten in die Datenbank eingefügt

More information