PowerShell szkript
Ez a szkript automatikusan importálja a 20 percnél régebbi SQL fájlokat a MySQL adatbázisba. Hasznos lehet, ha SQL szöveges naplózást engedélyez nagy teljesítményű konfigurációkhoz. A szkript futtatásához el kell menteni .ps1 kiterjesztéssel, és engedélyezni kell a PowerShell szkriptek végrehajtását Windows rendszeren a csoportházirend-szerkesztőben (vagy rendszergazdaként kell futtatni a szkriptet).
PowerShell szkript automatizálás elsajátítása (videó útmutató)
Ez a videó útmutató bemutatja, hogyan állítható be egy automatikus MySQL kötegelt feladat PowerShell szkript segítségével SQL fájlok importálásához az adatbázisba az Ozeki SMS Gateway használatával. Ezzel a megoldással könnyedén kezelheti üzenetnyilvántartását és tarthatja tisztán az SMS kommunikációhoz használt adatbázisát. A videó végére világosan megérti, hogyan használhatja a mellékelt PowerShell szkriptet az SQL fájlok automatikus importálásához a MySQL adatbázisba, ezzel szervezett és hatékony SMS kommunikációs archívumot tartva fenn.
Hozza létre a következő MySQL táblát
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;
Az első lépés a messagereport tábla létrehozása az adatbázisban. Minden kimenő és bejövő üzenet ebben a táblában lesz tárolva és frissítve állapotuk szerint. Ha már létrehozta ezt a táblát, kihagyhatja ezt a lépést. Másolja ki a fenti táblalétrehozó szkriptet és hajtsa végre az adatbázisban, ahogy az az 1. ábrán látható.
Mentse el a következő PowerShell szkriptet "dbimport.ps1" néven
A következő lépés a "dbimport.ps1" fájl létrehozása a C:\Ozeki mappában, ahogy az a 2. ábrán látható. Ez a fájl tartalmazza a szkriptet, amely időszakosan futtat SQL lekérdezéseket az adatbázisban.
$ProcessedDir = "C:\Ozeki\Processed" New-Item -ItemType Directory -Force -Path $ProcessedDir #végtelen ciklus while (1) { #20 percnél régebbi fájlok listázása #győződjön meg róla, hogy az idő nagyobb, mint a jelentéskészítési konfigurációban használt periódus Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} | Foreach-Object { #a fájl tartalmának betöltése a mysql adatbázisba Write-Output $_.FullName $Text = Get-Content -Path $_.FullName Write-Output $Text | C:\'Program Files'\MySQL\'MySQL Server 5.7'\bin\mysql -uroot -pmypass mydatabase #a feldolgozott fájl áthelyezése a feldolgozott mappába Move-Item -Path $_.FullName -Destination $ProcessedDir } #5 másodperc szünet Start-Sleep -s 5 }
Másolja ki a fenti PowerShell szkriptet és illessze be a "dbimport.ps1" fájlba, ahogy az a 3. ábrán látható.
Végül módosítsa a szkriptet a saját MySQL adatbázisa szerint. Az elérési úton változtassa meg a MySQL adatbázis verziószámát. Adja meg a használni kívánt felhasználónevet és jelszót, és cserélje le a "mydatabase" szöveget a saját adatbázisa nevére (4. ábra).
Futtassa a szkriptet rendszergazdaként
powershell -ExecutionPolicy Bypass -File dbimport.ps1
Most futtassa a szkriptet a PowerShellben a fenti parancs végrehajtásával, ahogy az az 5. ábrán látható.
Láthatja, hogy a szkript végrehajtja az összes 20 percnél régebbi SQL fájlt a 'C:\Ozeki\Reporting_SQL' mappában egyesével (6. ábra).
Minden SQL fájl, amelyet a szkript futtatott, áthelyeződik a Processed mappába, így egyetlen lekérdezés sem veszik el (7. ábra). Innen manuálisan törölheti őket, ha már nincs rájuk szüksége.
Végül, ha megnézi az adatbázist, láthatja, hogy az összes üzenet bekerült a messagereport táblába, ahogy az a 8. ábrán látható.
More information
- MSSQL szkript
- Powershell szkript MySQL kötegelt feladat olvasásához
- Feladatütemező