程式執行結果之自動檢查

閱讀時間約 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-----------------

54會員
120內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
留言0
查看全部
發表第一個留言支持創作者!
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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
本文由好好玩授權提供,原文出處在此 草悟廣場位於台中最具藝術、創作能量的草悟道附近,自2022年1月開幕後,就立即成為年輕人閒暇之餘,最愛前往的台中景點之一。純白具計設感的建築,利用多肉植物裝飾空間,再加上多樣化的店家入駐,如咖啡廳、網美飲料、異國料理、酒吧…等,打造出了具文青感又活潑的大人系公園。
Thumbnail
海牙,一座在國際犯罪影集或外交公約常被提及的城市,是荷蘭的政治中心,亦為往昔貴族的居住之所。沒有阿姆斯特丹如蜘蛛網般的運河景緻,海牙有的是中央政府機關、皇室官邸,還有坐落在幽靜林道旁的使館區。坐在林道上的長椅,睜眼可見樹梢的綠和大型雕塑作品,閉眼可聽鳥鳴和風吹過落葉的聲響。
Thumbnail
Windows電腦中,我們可以利用內建工具"工作排程器"去預設電腦重新啟動或登入時,自動執行重要程式,避免遺漏程式忘記,導致連動程式的系統不能使用。 以下是教學步驟: 步驟一: 開啟Windows電腦中內建工具"工作排程器" 步驟二: 將游標移至"工作排程器程式庫"按右鍵"建立工作" 步驟三:
Thumbnail
之前跟大家分享【表現目標】和【學習目標】,有助於設定自學的終點,但是在執行目標的過程中是否遇過有目標也難以下手的問題呢?今天想跟大家說說【拆解目標】,這也是我在自學製作封鎖電商黑名單chrome插件賺取被動收入過程中運用的方法,希望對剛入門自學程式的朋友有幫助
Thumbnail
需要使用執行業務暨其他所得者電子申報程式的人需要符合二種條件: 1.您是屬於執行業務業或其他所得業者 2.且您是"自己出來開業"(會要你輸入統一編號)
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
本文由好好玩授權提供,原文出處在此 草悟廣場位於台中最具藝術、創作能量的草悟道附近,自2022年1月開幕後,就立即成為年輕人閒暇之餘,最愛前往的台中景點之一。純白具計設感的建築,利用多肉植物裝飾空間,再加上多樣化的店家入駐,如咖啡廳、網美飲料、異國料理、酒吧…等,打造出了具文青感又活潑的大人系公園。
Thumbnail
海牙,一座在國際犯罪影集或外交公約常被提及的城市,是荷蘭的政治中心,亦為往昔貴族的居住之所。沒有阿姆斯特丹如蜘蛛網般的運河景緻,海牙有的是中央政府機關、皇室官邸,還有坐落在幽靜林道旁的使館區。坐在林道上的長椅,睜眼可見樹梢的綠和大型雕塑作品,閉眼可聽鳥鳴和風吹過落葉的聲響。
Thumbnail
Windows電腦中,我們可以利用內建工具"工作排程器"去預設電腦重新啟動或登入時,自動執行重要程式,避免遺漏程式忘記,導致連動程式的系統不能使用。 以下是教學步驟: 步驟一: 開啟Windows電腦中內建工具"工作排程器" 步驟二: 將游標移至"工作排程器程式庫"按右鍵"建立工作" 步驟三:
Thumbnail
之前跟大家分享【表現目標】和【學習目標】,有助於設定自學的終點,但是在執行目標的過程中是否遇過有目標也難以下手的問題呢?今天想跟大家說說【拆解目標】,這也是我在自學製作封鎖電商黑名單chrome插件賺取被動收入過程中運用的方法,希望對剛入門自學程式的朋友有幫助
Thumbnail
需要使用執行業務暨其他所得者電子申報程式的人需要符合二種條件: 1.您是屬於執行業務業或其他所得業者 2.且您是"自己出來開業"(會要你輸入統一編號)