程式執行結果之自動檢查

更新於 發佈於 閱讀時間約 9 分鐘

1.    問題:

資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。

 

2.    改善:

2.1 設計一執行檔,功能為打開備份程式執行後產生之紀錄檔(log file),檢查該log file 內是否有備份程式成功完成;若備份工作失敗,隨即自動寄出備份失敗之email,若有發現其他錯誤,亦於email上註明錯誤訊息,通知相關負責人員,以便可以盡快及時對應。

2.2 上述檢查log file之結果,不論成功或失敗均寫入一個檢查結果紀錄檔案內,該記錄檔案出力,可以當作日後稽查時,提供說明對備份工作之檢查證明。

2.3 上述檢查結果每日寫入紀錄檔案內,翌月時自動更改為以該月份命名之記錄檔檔名

2.4排程自動寄出email,含每日自動確認結果,及每月初一寄出上月份之月份確認表

 

3.方法:

  3.1設計bat 執行檔,讀取log file,若讀取之log檔內 沒有找到 "  successfully completed " ,表示備份失敗,隨後自動寄出JOB備份失敗之警告信email給負責人員

  3.2 確認log file檔名之日期是否正確?

  3.3 今日系統月份是否大於log file 檔名之月份,

      若是: 記錄檔名DMP_C.txt 改檔名為 xxx_YYYYMM.txt, 如”DMP_C_202403.txt”當作上月份之記錄檔案,並email 寄出上月份記錄之確認表。而原有DMP_C.txt因rename 後,已不存在,故當新的月份來時,會新增一txt檔,當作本月每日紀錄用 。

  3.4 自動寄信所需之參數檔,於Bat內依據當日執行狀況作成

  3.5 於Windows自動排程,設定為每日自動執行該bat檔

  3.6 bat檔, email自動寄信程式,自動寄信之參數檔,置放於同一目錄內

 

  4. 範例:

   4.1 bat 設計內容如下

set /a  Today = %date:~0,4%%date:~5,2%%date:~8,2%

if not exist G: (
net use G: \\10.XX.80.XX\e$\Datapump\XXX\Export\Dump /user:XXU\XXuser XX1234 /yes /persistent:NO
)
G:

rem ----STEP1 skip 6 log files, for getting the lastest F_Date log file
set r= NG
set logF=notfound log file
rem ----先跳開6筆較舊log,第七筆應最新,但若有重複Export場合,會取出第七筆以後最新log file

for /f "skip=6 delims=" %%A in ('dir /b /OD "G:\xxpack_XXX_XLIVE*.log" ') do (
set logF=%%A
CALL :FINDSucce %%A )

rem ----STEP 3 Today月份 GTR > LogFile 月份 ,then 寄出月份記錄確認表,及 rename to DMP_C_%logF:~17,6%.txt
D:
cd d:\XXX-IT\find_DMP_log
if %logF:~17,6% LSS 202008 (
pause ### ERROR lof file name : %logF:~17,6% is not normal
exit )
if %logF:~17,6% GTR a (
pause ### ERROR lof file name : %logF:~17,6% is not normal
exit )
if exist d:\XXX-IT\find_DMP_log\DMP_C_history\DMP_C_%logF:~17,6%.txt (
pause ### ERROR histoty month file DMP_C_%logF:~17,6%.txt is already exist
exit )

rem for 月份MAIL need apend 2, par records . for月份附檔 , echo. >> XXX.txt for換行
if %Today:~0,6% GTR %logF:~17,6% (
move DMP_C.txt d:\XXX-IT\find_DMP_log\DMP_C_history\
rename d:\XXX-IT\find_DMP_log\DMP_C_history\DMP_C.txt DMP_C_%logF:~17,6%.txt

type mail_par.txt > mail_par_WK.txt
echo. >> mail_par.txt
echo 2,D:\XXX-IT\find_DMP_log\DMP_C_history\DMP_C_%logF:~17,6%.txt >> mail_par.txt
CAll XXX_mail_ReadF.exe
type mail_par_WK.txt > mail_par.txt
)

rem ----STEP 4 出力DMP_C.txt。判斷log 是否成功? 失敗場合寄出 警告MAIL
rem for 警告MAIL need apend 0,,4 records , echo. >> X XX.txt for add new line to txt file
if %r% == OK (
echo %date% %time% DMP JOB OK, logFile= %logF% >> DMP_C.txt
) else (
echo %date% %time% DMP JOB NG, logFile= %logF% , need to check ! >> DMP_C.txt

type mail_par.txt > mail_par_WK.txt
echo. >> mail_par.txt
echo 0,[ Warning ] XXXPACK DB DMP job was unsuccessful-- sent >> mail_par.txt
echo 4,### ERROR--> logFile=%logF% is unsuccessful, 需調查! ### >> mail_par.txt
CAll XXX_mail_ReadF.exe
type mail_par_WK.txt > mail_par.txt
)
rem pause --4 final ---
exit

rem ----STEP2 findSTR of " successfully completed " in the lastest F_date log file
:FINDSucce
set r= NG
FOR /F " delims= tokens=1-13 " %%i in ('findstr /C:" successfully completed " "%logF%" ') do (
set r= OK )
exit /b %r% %logF% %errorlevel%


4.2 本例每日檢查紀錄檔出力之內容如下:


2024/2/24 週六 12:14:52.95 DMP JOB OK, logFile=LIVE_20240224.log 
2024/2/25 週日 12:22:23.60 DMP JOB NG, logFile= LIVE_20240225.log, need to confirm !      
2024/2/26 週一 12:14:52.95 DMP JOB OK, logFile=LIVE_20240226.log
2024/2/27 週二 12:14:50.75 DMP JOB OK, logFile=LIVE_20240227.log
2024/2/28 週三 12:17:26.31 DMP JOB OK, logFile=LIVE_20240228.log
raw-image

----------------recorded by linct-----------------

avatar-img
62會員
154內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
linct的沙龍 的其他內容
新系統建構時,可考慮採購建置VM機器,DB機器,備份機器以及網路設備等硬體機器。
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
欲傳送之內容,由使用者輸入於文字檔內,執行本執行檔後,指定之LINE群組全員,將會收到推播訊息
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
如何將LINE訊息自動傳出,利用curl工具
LINE 在台灣有許多人使用,是一天裡開啟次數最多的APP,是生活中最重要的社群平台。 但很多人不知道LINE官方有個免費推播訊息的服務LINE Notify
新系統建構時,可考慮採購建置VM機器,DB機器,備份機器以及網路設備等硬體機器。
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
欲傳送之內容,由使用者輸入於文字檔內,執行本執行檔後,指定之LINE群組全員,將會收到推播訊息
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
如何將LINE訊息自動傳出,利用curl工具
LINE 在台灣有許多人使用,是一天裡開啟次數最多的APP,是生活中最重要的社群平台。 但很多人不知道LINE官方有個免費推播訊息的服務LINE Notify
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
可能包含敏感內容
計畫執行順利,但還不夠,還需要更多更多,目的逐漸明確,但再這樣下去的話⋯
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
Thumbnail
其實流程不是不能改,只是考量要長遠、考慮周到。財會工作就是搜集、整理、統計、分析資料,不是只「記帳」而已,任何流程的建立都是為了能便於分析,快速找到問題。如果沒有意識到這一點,就是連自己也輕看自己的工作了。
之前使用發佈預排功能,試了幾次,文章並未顯示於沙龍, 此篇為再測試使用,無法事先預排真的不太方便
不論企業使用的伺服器和客戶端是使用何種作業系統,定期更新補丁是必不可少的。 這道理仿如真理,因為世界上還沒有一個作業系統是完全沒有漏洞的,只要有漏洞被發現,就要推出補丁,作為使用者的角色就得決定是否安裝。 筆者曾經和一些決策層交談,他們未必是IT業者,但也懂得補丁要越快更新越好。但其實這觀點並不
Thumbnail
在企業IT環境,系統和數據的備份的重要性相信是不用解說,亦不用懷疑的。 但很時時候,企業忽略的並不是備份,而是Drill test的重要性。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
可能包含敏感內容
計畫執行順利,但還不夠,還需要更多更多,目的逐漸明確,但再這樣下去的話⋯
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
Thumbnail
其實流程不是不能改,只是考量要長遠、考慮周到。財會工作就是搜集、整理、統計、分析資料,不是只「記帳」而已,任何流程的建立都是為了能便於分析,快速找到問題。如果沒有意識到這一點,就是連自己也輕看自己的工作了。
之前使用發佈預排功能,試了幾次,文章並未顯示於沙龍, 此篇為再測試使用,無法事先預排真的不太方便
不論企業使用的伺服器和客戶端是使用何種作業系統,定期更新補丁是必不可少的。 這道理仿如真理,因為世界上還沒有一個作業系統是完全沒有漏洞的,只要有漏洞被發現,就要推出補丁,作為使用者的角色就得決定是否安裝。 筆者曾經和一些決策層交談,他們未必是IT業者,但也懂得補丁要越快更新越好。但其實這觀點並不
Thumbnail
在企業IT環境,系統和數據的備份的重要性相信是不用解說,亦不用懷疑的。 但很時時候,企業忽略的並不是備份,而是Drill test的重要性。