程式執行結果之自動檢查

更新於 發佈於 閱讀時間約 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
留言分享你的想法!
avatar-img
linct的沙龍
64會員
194內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
linct的沙龍的其他內容
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
Thumbnail
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News