หลังจากที่เราเขียน Powershell Script ในการทำ VM Backup ขึ้นมา เราจะไม่มีการแจ้งเตือนว่ากา Backup ที่เราทำนั้น Success หรือไม่ เลยควรจะทำ Notification ไม่ว่าจะเป็นทาง Email หรือทาง Social Network อย่าง Line ซึ่งผมเคยเขียนบทความไว้ อ่านเพิ่มเติม : ที่นี่
Directory Structure
เราจะใช้ Directory Structure เดิมที่เคยสร้างไว้ โดยจะประกอบไปด้วยโครงสร้างดังนี้
C:\powershell-script
├───Credential/
│ └───vcsa.lab.local.clixml
└───VM-Script/
├───Backup-Daily.ps1
├───Backup-Monthly.ps1
├───Backup-Weekly.ps1
└───Configuration.ps1
Get Started
- สร้าง Group Line แล้วเข้าไปที่ https://notify-bot.line.me/my/ เพื่อทำการสร้าง Access Token ที่เราต้องการส่งไปยัง Group นั้น ๆ
- เราจะทำการตรวจสอบ VM ทั้งหมดที่เราจะทำการ Backup และ VM ที่มีการ Backup Success โดยใช้การนับจำนวน Count ++ ในแต่ละรอบ Loop ซึ่งจะใช้ 2 Variable คือ $all และ $success ถ้ามีการ Backup Fail ตัวแปร $success ก็จะไม่ถูกนับ เพราะจะหลุดจาก try…catch
foreach ($line in $vm) {
...
$all += 1
try {
...
$success += 1
} catch {
...
}
}
- ทำการเพิ่ม Global Variable 2 ตัวที่เราได้สร้างขึ้นในไฟล์ Configuration.ps1
# Line Notification
$Global:secret_key = 'your_token'
$Global:all = 0
$Global:success = 0
- ทำการแก้ไขไฟล์ Backup-Daily.txt
if (!$error -eq '') {
$msg = 'Daily : ' + $date + "`r`n" + 'All VM Backup : ' + $all + "`r`n" + 'Count VM Backup Successfully : ' + $success
$uri = 'https://notify-api.line.me/api/notify'
$token = 'Bearer ' + $secret_key
$header = @{Authorization = $token}
$body = @{message = $msg}
$res = Invoke-RestMethod -Uri $uri -Method Post -Headers $header -Body $body
echo $res
}
- ทำการแก้ไขไฟล์ Backup-Weekly.txt
if (!$error -eq '') {
$msg = 'Weekly : ' + $date + "`r`n" + 'All VM Backup : ' + $all + "`r`n" + 'Count VM Backup Successfully : ' + $success
$uri = 'https://notify-api.line.me/api/notify'
$token = 'Bearer ' + $secret_key
$header = @{Authorization = $token}
$body = @{message = $msg}
$res = Invoke-RestMethod -Uri $uri -Method Post -Headers $header -Body $body
echo $res
}
- ทำการแก้ไขไฟล์ Backup-Monthly.txt
if (!$error -eq '') {
$msg = 'Monthly : ' + $date + "`r`n" + 'All VM Backup : ' + $all + "`r`n" + 'Count VM Backup Successfully : ' + $success
$uri = 'https://notify-api.line.me/api/notify'
$token = 'Bearer ' + $secret_key
$header = @{Authorization = $token}
$body = @{message = $msg}
$res = Invoke-RestMethod -Uri $uri -Method Post -Headers $header -Body $body
echo $res
}
อ่านเพิ่มเติม : https://bit.ly/2TC5Isg
Leave a Reply