iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
佛心分享-我的私藏工具箱

作業系統的專武系列 第 10

在Windows用排程服務以PowerShell監控服務

  • 分享至 

  • xImage
  •  

昨天是Unix的crontab版,今天是Windows的排程版。Windows講究GUI,看似方便,但常因選項太多而不知從何找起。
【方案】寫支PowerShell Script由Windows的工作排程每五分鐘執行一次,該Script監控批次的Log最後修改時間,若與現在時間超過三分鐘,由Script重啟批次服務。
【實作】
以下以監控JBoss服務模擬監控批次服務。PowerShell Script名monitorJBoss.ps1

  • 由下圖得知,服名名稱為JBossEAP6
    https://ithelp.ithome.com.tw/upload/images/20240825/20119865G5rtOFmAo8.png

  • 在「控制台/系統及安全性/系統管理工具」下點選「工作排程器」
    https://ithelp.ithome.com.tw/upload/images/20240825/20119865VAdcTuYNSM.png

  • 在「工作排程器程式庫」按右鍵彈出選單點選「建立工作」,或是選右側欄的「建立工作」
    https://ithelp.ithome.com.tw/upload/images/20240825/20119865GfwdFo3tVv.png

  • 設定排程名稱,這裡輸入Monitor JBoss
    https://ithelp.ithome.com.tw/upload/images/20240825/20119865LCjo0TOzL5.png

  • 設定觸發程序,按「新增」彈出設定窗

    • 設定:每天
    • 重複工作每隔(P):5分鐘
      https://ithelp.ithome.com.tw/upload/images/20240825/20119865u10BbqsAJL.png
  • 設定動作,按「新增」彈出設定窗

    • 程式或指令碼:直接輸入powershell
    • 新增引數:含完整路徑的ps1檔名
      https://ithelp.ithome.com.tw/upload/images/20240825/201198654lunf2SgRa.png
  • MonitorJBoss.ps1的內容,紅字為改成監控批次時所需修改的部份

    • D:\EAP-6.3.0\jboss-eap-6.3\standalone\log\gc.log.0.current要改為jbranch_batch.log含完整路徑
    • 3是指log最後修改時間與現在系統時間差超過3分鐘
    • D:\Jemmy\TAIAS01_TEC_${NOW}.log分是指定路徑產出通知用的Log
    • 重啟服務的動作也可以寫成一行:
      • Get-Service -DisplayName "JBossEAP6" | Restart-Service
$duration = (Get-Date) - (Get-Item "D:\EAP-6.3.0\jboss-eap-6.3\standalone\log\gc.log.0.current").LastWriteTime
Write-Host $duration.TotalMinutes
if ($duration.TotalMinutes -gt 3) {
        $NOW   = Get-Date -format "yyyyMMddHHmm"
        $msg   = Get-Date -Format "yyyy-MM-dd HH:mm"
        $msg   += " 批次當了!!"
        Echo   $msg | Out-file -Encoding UTF8 -FilePath "D:\Jemmy\TAIAS01_TEC_${NOW}.log"
        Write-Host   "Restart..."
        Get-Service   -DisplayName "JBossEAP6" | Stop-Service
        Get-Service   -DisplayName "JBossEAP6" | Start-Service
}

上一篇
在AIX用crontab以Perl監控服務
下一篇
找出所有html檔,在檔案內容開頭加弱掃用的script
系列文
作業系統的專武30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言