PowerShell skript

Tento skript lze použít k automatickému importu SQL souborů starších než 20 minut do MySQL databáze. Je užitečný, pokud povolíte SQL textové logování pro vysokovýkonné konfigurace. Pro spuštění tohoto skriptu jej musíte uložit s příponou .ps1 a povolit spouštění PowerShell skriptů pro Windows v editoru skupinových zásad (nebo musíte skript spustit jako správce).

Ovládnutí automatizace PowerShell skriptů (videonávod)

Tento videonávod demonstruje postup nastavení automatické dávkové úlohy MySQL využívající PowerShell skript k importu SQL souborů do vaší databáze pomocí Ozeki SMS Gateway. S touto metodou můžete snadno spravovat záznamy zpráv a udržovat čistou databázi pro vaši SMS komunikaci. Na konci tohoto videa budete mít jasnou představu, jak použít přiložený PowerShell skript k automatizaci procesu importu SQL souborů do vaší MySQL databáze, čímž udržíte organizovaný a efektivní archiv SMS komunikace.

Video 1 - Jak importovat SQL soubory do vaší databáze pomocí Ozeki SMS Gateway (Videonávod)

Vytvořte následující MySQL tabulku

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;

Prvním krokem je vytvoření tabulky messagereport v databázi. Všechny odchozí a příchozí zprávy budou uloženy v této tabulce a aktualizovány podle jejich stavu. Pokud jste tuto tabulku již vytvořili, můžete tento krok přeskočit. Zkopírujte výše uvedený skript pro vytvoření tabulky a spusťte jej ve vaší databázi, jak je vidět na Obrázku 1.

vytvořit tabulku messagereport
Obrázek 1 - Vytvoření tabulky messagereport

Uložte následující PowerShell skript jako "dbimport.ps1"

Dalším krokem je vytvoření souboru "dbimport.ps1" ve složce C:\Ozeki, jak je znázorněno na Obrázku 2. Tento soubor bude obsahovat skript, který periodicky spouští SQL dotazy v databázi.

vytvořit soubor se skriptem
Obrázek 2 - Vytvoření souboru se skriptem

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

#nekonečná smyčka
while (1) {
	#vypsat soubory starší než 20 minut
	#ujistěte se, že čas je větší než období použité v konfiguraci reportingu
	Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | 
		Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} |
	
	Foreach-Object {
		#načíst obsah souboru do MySQL databáze
		Write-Output $_.FullName
		$Text = Get-Content -Path $_.FullName
		Write-Output $Text | C:\'Program Files'\MySQL\'MySQL Server 5.7'\bin\mysql -uroot 
		-pmypass mydatabase
		
		#přesunout zpracovaný soubor do složky Processed
		Move-Item -Path $_.FullName -Destination $ProcessedDir
	}
	
	#počkat 5 sekund
	Start-Sleep -s 5
}

Zkopírujte výše uvedený PowerShell skript a vložte jej do souboru "dbimport.ps1", jak je vidět na Obrázku 3.

vložit skript do souboru
Obrázek 3 - Vložení skriptu do souboru

Nakonec upravte skript podle vaší vlastní MySQL databáze. V cestě změňte číslo verze MySQL databáze. Zadejte uživatelské jméno a heslo, které chcete použít, a nahraďte "mydatabase" názvem vaší databáze (Obrázek 4).

změnit MySQL příkaz
Obrázek 4 - Změna MySQL příkazu

Spusťte skript jako správce
powershell -ExecutionPolicy Bypass -File dbimport.ps1

Nyní spusťte skript v PowerShellu zadáním výše uvedeného příkazu, jak je vidět na Obrázku 5.

run powershell script
Obrázek 5 - Spuštění PowerShell skriptu

Můžete vidět, že skript spustí všechny SQL soubory starší než 20 minut ve složce 'C:\Ozeki\Reporting_SQL' jeden po druhém (Obrázek 6).

script execute sql queries
Obrázek 6 - Skript spouští SQL dotazy

Každý SQL soubor, který skript spustil, je přesunut do složky Processed, aby nedošlo ke ztrátě dotazů (Obrázek 7). Odtud je můžete ručně smazat, pokud je již nepotřebujete.

sql files moved to processed folder
Obrázek 7 - SQL soubory přesunuty do složky Processed

Nakonec, pokud se podíváte do databáze, uvidíte, že všechny zprávy byly vloženy do tabulky messagereport, jak ukazuje Obrázek 8.

messages inserted into database
Obrázek 8 - Zprávy vložené do databáze

More information