999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ISOS軟件數據自動化備份的研究與實現

2023-12-11 01:15:14王文勇蘇靜文唐遠志
中低緯山地氣象 2023年5期
關鍵詞:系統

呂 敬,宋 丹,王文勇,蘇靜文,唐遠志

(1.貴州省氣象服務中心,貴州 貴陽 550002;2.貴州省安龍縣氣象局,貴州 安龍 552400)

0 引言

為人民提供精準、及時的氣象服務是氣象部門的職責之一[1]。其背后離不開ISOS軟件對溫度、濕度、風向風力等氣象要素數據的采集及存儲。由于病毒攻擊、市電斷電、電腦故障和操作失誤等時刻威脅著ISOS數據的安全性,因此,及時將測報數據進行本地、異地備份成為臺站數據保護的主要措施[2]。

目前,為保護ISOS軟件測報數據的安全性,臺站多使用批處理或借助第三方備份軟件進行數據備份。

基于DOS命令建立的批處理,其優點是程序簡單易寫,只需編寫少量的命令行并保存為.BAT文件,通過添加到Windows任務計劃的方式執行備份任務[3]。由于批處理本質是Windows下的DOS命令行,執行效率較高,備份任務較快,但由于ISOS軟件存在小時、分鐘、雨滴譜等不同類型的測報數據[4],備份數據時需要設置不同的定時任務,這增加了批處理的冗余度,存在備份失效的風險。在重新調整備份時間時需要重新修改DOS命令行,使用時欠缺快捷性。

第三方備份軟件如FileAutoSyncBackup,由于省卻了開發環節,可直接下載使用,具有一定的便利性。但由于氣象觀測要素跨20時為下一個日界[5-8],第三方軟件無法識別并處理氣象日界,導致備份內容缺測;ISOS測報數據多以.txt文檔保存,由于ISOS軟件內部工作機制,不會對.txt文檔進行實時保存,即保存時間與寫入時間不一致,而第三方軟件以保存時間作為文檔最后更新時間,這會導致備份文件與源文件數據不一致,使得備份失效;此外,付費的第三方備份軟件也會增加部門預算,加大了使用成本。

因此,針對ISOS軟件獨立開發快速、高效的備份系統對臺站的工作意義重大。

1 系統設計

臺站測報數據保存在本地D盤,因此,系統將本地D盤文檔作為源文檔。為盡可能提高數據安全性,發揮數據備份的最大作用,設置本地T盤和另一臺異地物理機通過映射方式映射為Z盤作為目標文件,即將D盤數據同時備份到本地T盤和異地Z盤。

1.1 資料選取

由于臺站觀測的氣象要素多,導致ISOS軟件測報數據量大,結合測報數據的重要程度和臺站需要,系統對表1所示的目錄及根目錄進行數據備份。

表1 備份目錄及描述Tab.1 Backup directory and description

1.2 技術路線

(1)遍歷最新文件。由于ISOS測報數據文件多以日期進行命名,因此,對于不同的ISOS測報數據文件,可以編成Python程序遍歷文件名的日期進行區分,關鍵代碼如下:

def get_date(file_name):

Title_date = ((file_name.split("")[-1]).split(".")[0]).split("_")[-1]

return Title_date

如遍歷分鐘數據文件:“MinuteAWS_M_Z_57908_20230110.txt”返回文件日期:20230110,利用此方法可以索引出目錄下的最新文件。

(2)確定目標文件。目前的第三方備份程序多以.txt最后的保存時間來判斷文件是否為最新文件,但由于ISOS軟件在寫入測報數據時不會對.txt文檔進行實時保存,導致第三方備份程序備份失效。因此,本文設計的備份系統不以保存日期來確定目標文件,而是利用ISOS測報文件的命名規律,通過對比索引文件名中的日期與當前日期來判斷文件夾下是否產生最新測報文件,以此確定需要備份的目標文件。

(3)跨日界問題。測報數據跨20時會產生后一日的測報文件,為解決氣象要素跨日界的問題,本文設計的備份系統在備份時通過索引文件日期判斷當日是否有跨日界文件,若存在,則該文件也是備份的目標文件。如在判斷分鐘數據文件夾下是否有備份目標文件的判斷語句為:

if (get_date(file_D_name) == now_time_Ymd()) or (get_date(file_D_name) == now_time_Ymd_add1())

其中get_date(file_D_name)為遍歷文件索引出的文件日期,now_time_Ymd()為當前年月日的日期,now_time_Ymd_add1()為后一日日期。通過對比索引出的日期與當前日期可解決測報數據跨日界的問題。

(4)補齊測報文件。首次使用本文設計的備份系統或考慮到市電斷電、業務電腦故障等因素,目標盤可能缺失過去一段時間的測報文件。因此,當本文設計的備份系統檢測到目標盤缺失測報文件時,可將缺失的測報文件補齊。執行程序如下:

if not os.path.exists(file_T_name):

txt_records.write(′T盤文件:%s 不存在,正在備份中... ' % file_T_name)

if os.path.isfile(file_D_name):

shutil.copy2(file_D_name, file_T_name)

txt_records.write(′T盤文件:%s 備份完成! ' % file_T_name)

if not os.path.exists(file_Z_name):

txt_records.write(′Z盤文件:%s 不存在,正在備份中... ' % file_Z_name)

if os.path.isfile(file_D_name):

shutil.copy2(file_D_name, file_Z_name)

txt_records.write(′Z盤文件:%s 備份完成! ' % file_Z_name)

1.3 備份策略

針對ISOS測報數據的特點和不同的目錄文件,系統設計不同的備份策略,以保證該目錄下的測報數據能快速、完整地備份到目標文件。

小時數據每月產生1個新的.txt文檔,分鐘數據每日產生1個新的.txt文檔,且生成的.txt不會自動保存為最新文檔,結合氣象要素跨日界的處理,設計小時數據、分鐘數據的備份策略如圖1所示。

圖1 小時數據、分鐘數據備份策略圖Fig.1 Hourly data and minute data backup strategy diagram

備份小時數據的部分備份代碼如下:

def backup_h_data_doing(source_path, destination_T_path, destination_Z_path):

for file in os.listdir(source_path):

file_D_name = os.path.join(source_path, file)

file_T_name = os.path.join(destination_T_path, file)

file_Z_name = os.path.join(destination_Z_path, file)

if not os.path.exists(file_T_name):

txt_records.write(′T盤文件:%s 不存在,正在備份中... ' % file_T_name)

if os.path.isfile(file_D_name):

shutil.copy2(file_D_name, file_T_name)

txt_records.write(′T盤文件:%s 備份完成! ' % file_T_name)

if not os.path.exists(file_Z_name):

txt_records.write(′Z盤文件:%s 不存在,正在備份中... ' % file_Z_name)

if os.path.isfile(file_D_name):

shutil.copy2(file_D_name, file_Z_name)

txt_records.write(′Z盤文件:%s 備份完成! ' % file_Z_name)

if (get_date(file_D_name) == now_time_Ym()) or (get_date(file_D_name)==

now_time_Ym_add1()):

txt_records.write(′T盤文件:%s 是最新文件,備份中... ' % file_T_name)

os.remove(file_T_name)

shutil.copy2(file_D_name, file_T_name)

txt_records.write(′T盤文件:%s 備份完成! ' % file_T_name)

txt_records.write(′Z盤文件:%s 是最新文件,備份中... ' % file_Z_name)

os.remove(file_Z_name)

shutil.copy2(file_D_name, file_Z_name)

txt_records.write(′Z盤文件:%s 備份完成! ' % file_Z_name)

DataBase數據每月生成1個.db文件,且最新數據保存在該.db文件和AWZ.db文件中。DataBase數據備份策略如圖2所示。

圖2 DataBase數據備份策略圖Fig.2 DataBase data backup strategy diagram

Awsnet數據每月生成1個新的文件夾,數據在文件夾下以.txt文件和.BIN文件格式保存。為提高備份效率,在備份Awsnet數據時直接對生成的文件夾進行遍歷,設計的備份策略如圖3所示。

圖3 Awsnet數據備份策略圖Fig.3 Awsnet data backup strategy diagram

備份Send數據時,對“Send”目錄下的Data數據、intelligentweather數據、JL數據、sendbak數據、Unknown數據以及YDP數據進行備份。設計的備份策略如圖4所示。

1.4 系統界面

Tkinter是Python圖形用戶界面(Graphical User Interface,GUI)開發庫和工具包的接口,是一個輕量級的跨平臺GUI開發工具,兼容Windows、Macintosh和Unix等多個操作系統,支持標簽、按鈕和畫布等多個組件,以及具有位圖、錨點和控件等屬性。設計的GUI具有靈活性強、可移植度高和頁面風格良好等特點,可快速創建功能強大的應用程序[9]。

因此,為了方便操作和查看,利用Tkinter對系統進行可視化設計,用于人機交互。設計的GUI頁面如圖5所示。

圖5 GUI頁面圖Fig.5 GUI page diagram

如圖5所示,根據不同的備份策略,系統可接受用戶對不同類型的測報數據進行定時備份。當用戶輸入時間后,點擊“配置”按鈕,系統記錄配置時間;點擊“開始”按鈕,系統開始執行定時備份任務,并將當前備份進度顯示在“backup_records.txt”文本文檔中;點擊“備份路徑”按鈕,可查看表1中具體的備份路徑;“幫助”按鈕對系統的操作進行了詳細介紹。

最后,利用打包工具pyinstaller將程序打包成“氣象臺數據備份系統.exe”可執行程序,提升了備份系統的實用性。

2 實驗及測試

2.1 實驗環境

實驗環境由硬件環境和軟件環境組成。系統測試采用的硬件環境和軟件環境分別如表2、表3所示。

表2 硬件環境Tab.2 Hardware environment

表3 軟件環境Tab.3 Software environment

2.2 實驗過程

根據備份策略,在GUI頁面設置如下定時備份任務:

(1)“小時數據備份時間”設置為“1 h 2 min”,即每間隔1 h后的2 min執行1次小時數據備份;

(2)“分鐘數據備份時間”設置為“6 min 20 s”,即每間隔6 min后的20 s執行1次分鐘數據備份;

(3)“DataBase數據備份時間”設置為“1 h 20 min”,即每間隔1 h后的20 min執行1次DataBase數據備份;

(4)“Awsnet數據備份時間”設置為“1 d 20時20分”,即每天20時20分執行1次Awsnet數據備份;

(5)“Send數據備份時間”設置為“10 min 50 s”,即每間隔10 min后的50 s執行1次Send數據備份。

設置好備份時間后,分別點擊“配置”按鈕和“開始”按鈕,系統執行備份任務。備份進度如圖6所示。

圖6 備份進度圖Fig.6 Backup progress diagram

經臺站多次實驗,系統可按照設置的備份時間將表1目錄下的文件夾及.txt、.db、.BIN等文件自動化備份到本地T盤和異地Z盤對應目錄下??紤]臺站業務機系統為Windows7,將系統在Windows7環境下進行測試,系統運行穩定,數據備份完整,目錄齊全。

3 結語

加強數據安全保護是臺站確保業務正常運行的重要保障。本文設計的備份系統根據不同的ISOS測報數據類型,提出了不同的備份策略,有效解決了在備份中ISOS軟件不會對.txt文檔進行實時保存以及氣象要素跨日界的問題。經多次實驗,系統能及時有效地將測報數據自動化備份到目標文件夾下。目前,系統已在貴州省安龍縣氣象臺投入業務運行,成為該臺站ISOS測報數據的有效備份系統。

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 国产成人久久777777| 国产免费久久精品99re丫丫一| 精品久久777| 99热这里只有精品免费国产| 亚洲va精品中文字幕| 色悠久久综合| 国产综合欧美| 日本不卡在线播放| 92精品国产自产在线观看| 999精品在线视频| 亚洲无码高清免费视频亚洲| 国产原创第一页在线观看| 午夜性爽视频男人的天堂| 999精品色在线观看| 91丨九色丨首页在线播放| 亚洲综合网在线观看| 91精品国产自产在线老师啪l| 国产成人久久综合777777麻豆| 四虎免费视频网站| 国产国语一级毛片在线视频| 漂亮人妻被中出中文字幕久久| 日本欧美一二三区色视频| 九九久久精品免费观看| 华人在线亚洲欧美精品| 中国特黄美女一级视频| 99视频在线观看免费| 强乱中文字幕在线播放不卡| 成年A级毛片| 亚洲码一区二区三区| 国产sm重味一区二区三区| 国产成人精品三级| 91麻豆国产视频| 久久综合激情网| 又黄又爽视频好爽视频| 高清码无在线看| 亚洲欧美激情小说另类| 色婷婷成人| 亚洲人成网站日本片| 999精品视频在线| 精品人妻系列无码专区久久| 国产欧美日韩综合在线第一| 一本一本大道香蕉久在线播放| 欧美在线视频a| 国产玖玖视频| 久久精品国产999大香线焦| 国产91蝌蚪窝| 欧美日韩北条麻妃一区二区| 亚洲综合国产一区二区三区| 精品久久综合1区2区3区激情| 免费在线不卡视频| 不卡网亚洲无码| 91免费国产高清观看| 成人亚洲国产| 老熟妇喷水一区二区三区| 4虎影视国产在线观看精品| 91精品国产情侣高潮露脸| 漂亮人妻被中出中文字幕久久| 亚州AV秘 一区二区三区| 亚洲最猛黑人xxxx黑人猛交| 国产欧美日韩一区二区视频在线| 久久成人免费| 欧美啪啪一区| а∨天堂一区中文字幕| 永久免费无码成人网站| 亚洲一区二区三区在线视频| 欧美日韩国产一级| 青青青国产精品国产精品美女| 亚洲精品老司机| www.国产福利| 在线免费看片a| 伊人成人在线视频| 亚洲精品在线91| 亚洲第一黄片大全| 成人免费视频一区| 国产在线视频欧美亚综合| 依依成人精品无v国产| 成人免费视频一区| 国产女同自拍视频| 国产情精品嫩草影院88av| 欧美视频在线不卡| 欧美激情,国产精品| 國產尤物AV尤物在線觀看|