نص PowerShell
يمكن استخدام هذا النص لاستيراد ملفات SQL الأقدم من 20 دقيقة تلقائيًا إلى قاعدة بيانات MySQL. يكون مفيدًا إذا قمت بتمكين تسجيل نص SQL لـ تكوينات عالية الأداء. لتنفيذ هذا النص، يجب عليك حفظه بامتداد .ps1، ويجب تمكين تنفيذ نصوص PowerShell لـ Windows في محرر سياسة المجموعة (أو يجب تنفيذ النص كمسؤول).
إتقان أتمتة نصوص PowerShell (فيديو تعليمي)
يتم في هذا الدليل المرئي توضيح عملية إعداد مهمة دفعية تلقائية لـ MySQL باستخدام نص PowerShell لاستيراد ملفات SQL إلى قاعدة البيانات الخاصة بك باستخدام Ozeki SMS Gateway. يمكنك بسهولة إدارة سجلات الرسائل والحفاظ على قاعدة بيانات نظيفة لاتصالاتك النصية بمساعدة هذا الحل. في نهاية هذا الفيديو، ستفهم بوضوح كيفية استخدام نص PowerShell المرفق لأتمتة عملية استيراد ملفات SQL إلى قاعدة بيانات MySQL الخاصة بك، مما يحافظ على أرشيف منظم وفعال للاتصالات النصية.
قم بإنشاء جدول 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;
الخطوة الأولى هي إنشاء جدول messagereport في قاعدة البيانات. سيتم تخزين جميع الرسائل الصادرة والواردة في هذا الجدول وتحديثها وفقًا لحالتها. إذا كنت قد قمت بإنشاء هذا الجدول بالفعل، يمكنك تخطي هذه الخطوة. انسخ نص إنشاء الجدول أعلاه وقم بتنفيذه في قاعدة البيانات الخاصة بك كما تراه في الشكل 1.
احفظ نص PowerShell التالي كـ "dbimport.ps1"
الخطوة التالية هي إنشاء ملف "dbimport.ps1" في مجلد C:\Ozeki كما هو موضح في الشكل 2. سيحتوي هذا الملف على النص الذي يقوم بتشغيل استعلامات SQL في قاعدة البيانات بشكل دوري.
$ProcessedDir = "C:\Ozeki\Processed" New-Item -ItemType Directory -Force -Path $ProcessedDir #حلقة لا نهائية while (1) { #سرد الملفات الأقدم من 20 دقيقة #تأكد من أن الوقت أكبر من الفترة التي استخدمتها في تكوين الإبلاغ Get-ChildItem "C:\Ozeki\Reporting_SQL" -Filter *.sql | Where{$_.LastWriteTime -le (Get-Date).AddMinutes(-20)} | Foreach-Object { #تحميل محتويات الملف إلى قاعدة بيانات 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 #نقل الملف المعالج إلى مجلد المعالجة Move-Item -Path $_.FullName -Destination $ProcessedDir } #انتظر لمدة 5 ثوانٍ Start-Sleep -s 5 }
انسخ نص PowerShell أعلاه والصقه في ملف "dbimport.ps1" كما تراه في الشكل 3.
أخيرًا، قم بتعديل النص وفقًا لقاعدة بيانات MySQL الخاصة بك. في المسار، قم بتغيير رقم إصدار قاعدة بيانات MySQL. أدخل اسم المستخدم وكلمة المرور التي تريد استخدامها، واستبدل "mydatabase" باسم قاعدة البيانات الخاصة بك (الشكل 4).
نفذ البرنامج النصي كمسؤول
powershell -ExecutionPolicy Bypass -File dbimport.ps1
الآن قم بتنفيذ البرنامج النصي في PowerShell عن طريق تشغيل الأمر أعلاه كما تراه في الشكل 5.
يمكنك أن ترى أن البرنامج النصي ينفذ جميع ملفات SQL الأقدم من 20 دقيقة في مجلد 'C:\Ozeki\Reporting_SQL' واحدًا تلو الآخر (الشكل 6).
يتم نقل كل ملف SQL تم تشغيله بواسطة البرنامج النصي إلى مجلد "Processed" حتى لا تضيع أي استعلامات (الشكل 7). من هنا، يمكنك حذفها يدويًا إذا لم تعد بحاجة إليها.
أخيرًا، إذا نظرت إلى قاعدة البيانات، يمكنك أن ترى أنه تم إدراج جميع الرسائل في جدول messagereport كما يظهر في الشكل 8.
More information
- نص MSSQL
- نص Powershell لقراءة مهمة MySQL الدفعية
- جدولة المهام