PowerShell skript
Tento skript možno použiť na automatický import SQL súborov starších ako 20 minút do MySQL databázy. Je užitočný, ak povolíte SQL textové logovanie pre vysokovýkonné konfigurácie. Aby ste mohli tento skript spustiť, musíte ho uložiť s príponou .ps1 a povoliť vykonávanie PowerShell skriptov pre Windows v editori skupinových politík (alebo musíte skript spustiť ako správca).
Ovládanie automatizácie PowerShell skriptov (videonávod)
V tomto videonávode je demonštrovaný postup nastavenia automatickej MySQL dávkovej úlohy využívajúcej PowerShell skript na import SQL súborov do vašej databázy pomocou Ozeki SMS Gateway. S touto riešením môžete ľahko spravovať vaše záznamy správ a udržiavať čistú databázu pre vašu SMS komunikáciu. Na konci tohto videa budete jasne rozumieť, ako použiť priložený PowerShell skript na automatizáciu procesu importu SQL súborov do vašej MySQL databázy, čím udržíte organizovaný a efektívny archív SMS komunikácie.
Vytvorte nasledujúcu MySQL tabuľku
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;
Prvým krokom je vytvorenie tabuľky messagereport v databáze. Všetky odchádzajúce a prichádzajúce správy budú uložené v tejto tabuľke a aktualizované podľa ich stavu. Ak ste už túto tabuľku vytvorili, môžete tento krok preskočiť. Skopírujte skript na vytvorenie tabuľky vyššie a vykonajte ho vo vašej databáze, ako môžete vidieť na obrázku 1.
Uložte nasledujúci powershell skript ako "dbimport.ps1"
Ďalším krokom je vytvorenie súboru "dbimport.ps1" v priečinku C:\Ozeki, ako je znázornené na obrázku 2. Tento súbor bude obsahovať skript, ktorý periodicky spúšťa SQL dotazy v databáze.
$ProcessedDir = "C:\Ozeki\Processed" New-Item -ItemType Directory -Force -Path $ProcessedDir #nekonečný cyklus while (1) { #zoznam súborov starších ako 20 minút #uistite sa, že čas je väčší ako obdobie, ktoré ste použili v konfigurácii reportingu Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} | Foreach-Object { #načítanie obsahu súboru do MySQL databázy Write-Output $_.FullName $Text = Get-Content -Path $_.FullName Write-Output $Text | C:\'Program Files'\MySQL\'MySQL Server 5.7'\bin\mysql -uroot -pmypass mydatabase #presunutie spracovaného súboru do priečinku Processed Move-Item -Path $_.FullName -Destination $ProcessedDir } #čakanie na 5 sekúnd Start-Sleep -s 5 }
Skopírujte vyššie uvedený PowerShell skript a vložte ho do súboru "dbimport.ps1", ako môžete vidieť na obrázku 3.
Nakoniec upravte skript podľa vašej vlastnej MySQL databázy. V ceste zmeňte číslo verzie MySQL databázy. Zadajte používateľské meno a heslo, ktoré chcete použiť, a nahraďte "mydatabase" názvom vašej databázy (Obrázok 4).
Spustite skript ako správca
powershell -ExecutionPolicy Bypass -File dbimport.ps1
Teraz spustite skript v power shell zadaním vyššie uvedeného príkazu, ako môžete vidieť na obrázku 5.
Môžete vidieť, že skript spustí všetky SQL súbory, ktoré sú staršie ako 20 minút v priečinku 'C:\Ozeki\Reporting_SQL' jeden po druhom (Obrázok 6).
Každý SQL súbor, ktorý skript spustil, je presunutý do priečinka Processed, aby sa nestratili žiadne dopyt (Obrázok 7). Odtiaľ ich môžete manuálne odstrániť, ak ich už nepotrebujete.
Nakoniec, ak sa pozriete do databázy, môžete vidieť, že všetky správy boli vložené do tabuľky messagereport, ako ukazuje obrázok 8.
More information
- MSSQL script
- Powershell script for reading MySQL batch job
- Task scheduler