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.
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.
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.
$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.
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).
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.
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).
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.
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.
More information
- MSSQL skript
- Powershell skript pro čtení dávkové úlohy MySQL
- Plánovač úloh