Skrypt PowerShell

Ten skrypt może być używany do automatycznego importowania plików SQL starszych niż 20 minut do bazy danych MySQL. Jest przydatny, jeśli włączysz logowanie tekstowe SQL dla konfiguracji wysokiej wydajności. Aby wykonać ten skrypt, musisz zapisać go z rozszerzeniem .ps1 i włączyć wykonywanie skryptów PowerShell dla systemu Windows w edytorze zasad grupy (lub musisz uruchomić skrypt jako Administrator).

Opanowanie automatyzacji skryptów PowerShell (samouczek wideo)

Procedura konfiguracji automatycznego zadania wsadowego MySQL wykorzystującego skrypt PowerShell do importowania plików SQL do bazy danych za pomocą Ozeki SMS Gateway jest przedstawiona w tym przewodniku wideo. Możesz łatwo zarządzać rekordami wiadomości i utrzymywać czystą bazę danych dla swoich komunikacji SMS dzięki temu rozwiązaniu. Pod koniec tego filmu będziesz miał jasne zrozumienie, jak używać dołączonego skryptu PowerShell do automatyzacji procesu importowania plików SQL do bazy danych MySQL, utrzymując uporządkowane i efektywne archiwum komunikacji SMS.

Wideo 1 - Jak importować pliki SQL do bazy danych za pomocą Ozeki SMS Gateway (Samouczek wideo)

Utwórz następującą tabelę MySQL

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;

Pierwszym krokiem jest utworzenie tabeli messagereport w bazie danych. Wszystkie wiadomości wychodzące i przychodzące będą przechowywane w tej tabeli i aktualizowane zgodnie z ich statusem. Jeśli już utworzyłeś tę tabelę, możesz pominąć ten krok. Skopiuj powyższy skrypt tworzenia tabeli i wykonaj go w swojej bazie danych, jak widać na Rysunku 1.

utwórz tabelę messagereport
Rysunek 1 - Utwórz tabelę messagereport

Zapisz następujący skrypt PowerShell jako "dbimport.ps1"

Następnym krokiem jest utworzenie pliku "dbimport.ps1" w folderze C:\Ozeki, jak pokazano na Rysunku 2. Ten plik będzie zawierał skrypt, który okresowo wykonuje zapytania SQL w bazie danych.

utwórz plik skryptu
Rysunek 2 - Utwórz plik skryptu

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

#nieskończona pętla
while (1) {
	#lista plików starszych niż 20 minut
	#upewnij się, że czas jest większy niż okres używany w konfiguracji raportowania
	Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | 
		Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} |
	
	Foreach-Object {
		#załaduj zawartość pliku do bazy danych mysql
		Write-Output $_.FullName
		$Text = Get-Content -Path $_.FullName
		Write-Output $Text | C:\'Program Files'\MySQL\'MySQL Server 5.7'\bin\mysql -uroot 
		-pmypass mydatabase
		
		#przenieś przetworzony plik do katalogu przetworzonych
		Move-Item -Path $_.FullName -Destination $ProcessedDir
	}
	
	#czekaj 5 sekund
	Start-Sleep -s 5
}

Skopiuj powyższy skrypt PowerShell i wklej go do pliku "dbimport.ps1", jak widać na Rysunku 3.

wklej skrypt do pliku
Rysunek 3 - Wklej skrypt do pliku

Na koniec zmodyfikuj skrypt zgodnie z własną bazą danych MySQL. W ścieżce zmień numer wersji bazy danych MySQL. Wprowadź nazwę użytkownika i hasło, których chcesz użyć, i zastąp "mydatabase" nazwą swojej bazy danych (Rysunek 4).

zmień polecenie mysql
Rysunek 4 - Zmień polecenie MySQL

Wykonaj skrypt jako administrator
powershell -ExecutionPolicy Bypass -File dbimport.ps1

Teraz wykonaj skrypt w power shell, uruchamiając powyższą komendę, jak widać na Rysunku 5.

uruchom skrypt powershell
Rysunek 5 - Uruchom skrypt powershell

Możesz zobaczyć, że skrypt wykonuje wszystkie pliki SQL starsze niż 20 minut w folderze 'C:\Ozeki\Reporting_SQL' jeden po drugim (Rysunek 6).

skrypt wykonuje zapytania sql
Rysunek 6 - Skrypt wykonuje zapytania SQL

Każdy plik SQL, który został wykonany przez skrypt, jest przenoszony do folderu Processed, aby żadne zapytania nie zostały utracone (Rysunek 7). Stąd możesz je ręcznie usunąć, jeśli nie są już potrzebne.

pliki sql przeniesione do folderu processed
Rysunek 7 - Pliki SQL przeniesione do folderu Processed

Na koniec, jeśli spojrzysz do bazy danych, możesz zobaczyć, że wszystkie wiadomości zostały wstawione do tabeli messagereport, jak pokazuje Rysunek 8.

wiadomości wstawione do bazy danych
Rysunek 8 - Wiadomości wstawione do bazy danych

More information