• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ISOS軟件數(shù)據(jù)自動化備份的研究與實現(xiàn)

      2023-12-11 01:15:14王文勇蘇靜文唐遠(yuǎn)志
      中低緯山地氣象 2023年5期
      關(guān)鍵詞:數(shù)據(jù)備份測報臺站

      呂 敬,宋 丹,王文勇,蘇靜文,唐遠(yuǎn)志

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

      0 引言

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

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

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

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

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

      1 系統(tǒng)設(shè)計

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

      1.1 資料選取

      由于臺站觀測的氣象要素多,導(dǎo)致ISOS軟件測報數(shù)據(jù)量大,結(jié)合測報數(shù)據(jù)的重要程度和臺站需要,系統(tǒng)對表1所示的目錄及根目錄進(jìn)行數(shù)據(jù)備份。

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

      1.2 技術(shù)路線

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

      def get_date(file_name):

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

      return Title_date

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

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

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

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

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

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

      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測報數(shù)據(jù)的特點和不同的目錄文件,系統(tǒng)設(shè)計不同的備份策略,以保證該目錄下的測報數(shù)據(jù)能快速、完整地備份到目標(biāo)文件。

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

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

      備份小時數(shù)據(jù)的部分備份代碼如下:

      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數(shù)據(jù)每月生成1個.db文件,且最新數(shù)據(jù)保存在該.db文件和AWZ.db文件中。DataBase數(shù)據(jù)備份策略如圖2所示。

      圖2 DataBase數(shù)據(jù)備份策略圖Fig.2 DataBase data backup strategy diagram

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

      圖3 Awsnet數(shù)據(jù)備份策略圖Fig.3 Awsnet data backup strategy diagram

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

      1.4 系統(tǒng)界面

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

      因此,為了方便操作和查看,利用Tkinter對系統(tǒng)進(jìn)行可視化設(shè)計,用于人機(jī)交互。設(shè)計的GUI頁面如圖5所示。

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

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

      最后,利用打包工具pyinstaller將程序打包成“氣象臺數(shù)據(jù)備份系統(tǒng).exe”可執(zhí)行程序,提升了備份系統(tǒng)的實用性。

      2 實驗及測試

      2.1 實驗環(huán)境

      實驗環(huán)境由硬件環(huán)境和軟件環(huán)境組成。系統(tǒng)測試采用的硬件環(huán)境和軟件環(huán)境分別如表2、表3所示。

      表2 硬件環(huán)境Tab.2 Hardware environment

      表3 軟件環(huán)境Tab.3 Software environment

      2.2 實驗過程

      根據(jù)備份策略,在GUI頁面設(shè)置如下定時備份任務(wù):

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

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

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

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

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

      設(shè)置好備份時間后,分別點擊“配置”按鈕和“開始”按鈕,系統(tǒng)執(zhí)行備份任務(wù)。備份進(jìn)度如圖6所示。

      圖6 備份進(jìn)度圖Fig.6 Backup progress diagram

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

      3 結(jié)語

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

      猜你喜歡
      數(shù)據(jù)備份測報臺站
      泉州高速公路收費系統(tǒng)遠(yuǎn)程數(shù)據(jù)備份研究
      中國科學(xué)院野外臺站檔案工作回顧
      氣象基層臺站建設(shè)
      西藏科技(2021年12期)2022-01-17 08:46:38
      海洋數(shù)據(jù)備份平臺的設(shè)計和實現(xiàn)
      程控交換機(jī)的數(shù)據(jù)備份與恢復(fù)技術(shù)分析
      No.4 IDC:2019年上半年數(shù)據(jù)備份與恢復(fù)市場同比增長10.0%
      夸夸咱們的測報員
      淺談林業(yè)有害生物測報與防治
      梨小食心蟲性信息素在測報和防治上的應(yīng)用
      浙江柑橘(2016年2期)2016-03-11 20:12:46
      基層臺站綜合觀測業(yè)務(wù)管理之我見
      西藏科技(2015年6期)2015-09-26 12:12:13
      抚州市| 平潭县| 叙永县| 苍南县| 吉安县| 舟山市| 柞水县| 虞城县| 渭源县| 安义县| 丽江市| 伊川县| 密云县| 宁海县| 雷波县| 土默特左旗| 贞丰县| 宽城| 德安县| 梧州市| 库车县| 大庆市| 抚松县| 讷河市| 如皋市| 黄浦区| 岳阳市| 大足县| 尼玛县| 荔波县| 商南县| 政和县| 禹城市| 永新县| 延庆县| 红安县| 钟山县| 桂林市| 正阳县| 农安县| 达尔|