李 挺,鄧 科,張煥青,蔡 昂,馮 凝,劉曉華,李 煒,洪 葉
(國(guó)網(wǎng)湖北省電力公司檢修公司, 武漢 430050)
類Unix系統(tǒng)服務(wù)器文件夾磁盤空間監(jiān)視及自動(dòng)維護(hù)軟件的研制
李 挺,鄧 科,張煥青,蔡 昂,馮 凝,劉曉華,李 煒,洪 葉
(國(guó)網(wǎng)湖北省電力公司檢修公司, 武漢 430050)
“文件夾磁盤空間滿”問(wèn)題對(duì)類Unix系統(tǒng)服務(wù)器運(yùn)行造成嚴(yán)重危害,處理難度大且不易察覺(jué)。對(duì)其原因進(jìn)行分析,采用操作系統(tǒng)底層配置、過(guò)濾攔截手段及手動(dòng)清理方法,實(shí)現(xiàn)了類Unix系統(tǒng)服務(wù)器文件夾磁盤空間監(jiān)視及自動(dòng)維護(hù)技術(shù),著重分析了該技術(shù)的實(shí)現(xiàn)原理,并在此基礎(chǔ)上進(jìn)行了開(kāi)發(fā)實(shí)現(xiàn)。該軟件實(shí)現(xiàn)了“文件夾空間監(jiān)視及告警”、“歷史垃圾文件智能識(shí)別與自動(dòng)清理”、“人為寫(xiě)入操作范圍限制”、“重要軟件運(yùn)行事件可靠記錄”等功能。經(jīng)過(guò)工程實(shí)踐表明:該軟件各項(xiàng)功能運(yùn)行穩(wěn)定,大幅減小了其問(wèn)題發(fā)生機(jī)率及處理難度。
磁盤空間; 權(quán)限管理; 清理; 文件夾
類Unix系統(tǒng)(Solaris Unix及Linux操作系統(tǒng)等)服務(wù)器“文件夾磁盤空間滿”會(huì)造成 “系統(tǒng)頻繁死機(jī)”、“應(yīng)用程序運(yùn)行不穩(wěn)定及功能退出”[1]等危害。由于缺乏人為寫(xiě)入操作的限制手段,及系統(tǒng)操作復(fù)雜、缺乏智能軟件工具等因素,“文件夾磁盤空間滿”現(xiàn)象時(shí)有發(fā)生,磁盤清理工作難度大,常出現(xiàn)刪除不完全及錯(cuò)刪文件現(xiàn)象,造成系統(tǒng)崩潰及應(yīng)用程序損壞等嚴(yán)重后果[2]。本文對(duì)其原因進(jìn)行詳細(xì)分析,研制了一套文件夾磁盤空間監(jiān)視及自動(dòng)維護(hù)的軟件,通過(guò)“文件夾寫(xiě)入權(quán)限管理”、“文件夾空間監(jiān)視”、“歷史垃圾文件識(shí)別與清理”、“事件記錄管理”、“防止軟件非常態(tài)退出” 五大功能模塊,分別解決“人為存放文件混亂造成重要文件夾磁盤空間滿”、“指令操作復(fù)雜造成磁盤空間狀態(tài)難以監(jiān)視”、“文件類型多樣性及路徑復(fù)雜性造成歷史垃圾文件刪除難度大”等運(yùn)維問(wèn)題。同時(shí),對(duì)“配置修改事件”和“歷史垃圾清理事件”及“通訊狀態(tài)檢測(cè)與告警事件”進(jìn)行可靠地管理保存,做到有據(jù)可查。針對(duì)“軟件非常態(tài)退出”情況提供了多項(xiàng)措施,以增強(qiáng)軟件運(yùn)行可靠性。另外,對(duì)“軟件安裝與設(shè)置工作”進(jìn)行了危險(xiǎn)點(diǎn)分析,制定了相關(guān)安全措施。
根據(jù)長(zhǎng)期運(yùn)維經(jīng)驗(yàn)分析,導(dǎo)致磁盤空間滿的原因主要分為如下幾點(diǎn):
1) 文件類型多樣性及路徑復(fù)雜性造成歷史垃圾文件刪除難度大
服務(wù)器正常運(yùn)行中會(huì)產(chǎn)生多種歷史垃圾文件,分為文本文件和數(shù)據(jù)庫(kù)文件[3]兩大類:
① 以文本文件形式存在
通常采用手動(dòng)輸入復(fù)雜指令操作,根據(jù)多個(gè)不同文件路徑下文件的“特殊文件格式”及“最后修改時(shí)間”進(jìn)行刪除。
② 以數(shù)據(jù)庫(kù)文件形式存在
采用相關(guān)的數(shù)據(jù)庫(kù)管理工具進(jìn)入數(shù)據(jù)庫(kù),根據(jù)數(shù)據(jù)庫(kù)中的“特定表名中的時(shí)間特征”或“特定表中數(shù)據(jù)的生成時(shí)間”進(jìn)行文件刪除。
2) 人為存放文件混亂造成重要文件夾磁盤空間滿
維護(hù)人員在操作過(guò)程中將備份資料、調(diào)試軟件等文件以手動(dòng)復(fù)制/移動(dòng)、壓縮/解壓縮、FTP、SFTP數(shù)據(jù)傳輸工具的方式任意存放于重要文件夾里,導(dǎo)致其磁盤空間滿,從而造成服務(wù)器故障[4]。
3) 根目錄文件夾空間容量分配不當(dāng)
在安裝操作系統(tǒng)時(shí),對(duì)相關(guān)重要文件夾(如操作系統(tǒng)文件夾、重要程序的歷史數(shù)據(jù)文件夾等)空間分配過(guò)小,造成系統(tǒng)運(yùn)行無(wú)緩存空間[5],導(dǎo)致服務(wù)器“歷史數(shù)據(jù)不刷新”或“頻繁重啟”等嚴(yán)重故障。
4) 指令操作復(fù)雜造成磁盤空間狀態(tài)難以監(jiān)視
由于類Unix操作系統(tǒng)相對(duì)于Windows系統(tǒng)界面不夠友好,僅依靠手動(dòng)輸入復(fù)雜指令的方式進(jìn)行文件磁盤空間查詢,無(wú)實(shí)時(shí)自動(dòng)監(jiān)視手段,導(dǎo)致重要文件夾磁盤空間狀態(tài)無(wú)法得到及時(shí)有效的監(jiān)視[6],難以滿足運(yùn)維需求。
針對(duì)類Unix系統(tǒng)服務(wù)器“磁盤空間滿”的問(wèn)題,研制文件夾綜合管理及維護(hù)系統(tǒng),在解決文件夾維護(hù)工作中諸多難點(diǎn)的同時(shí),對(duì)軟件的便捷性及兼容性也提供了功能支持。
在滿足日常維護(hù)需求(應(yīng)用程序升級(jí)、文件備份、數(shù)據(jù)庫(kù)更新、應(yīng)用程序與操作系統(tǒng)的數(shù)據(jù)交換)的前提下,通過(guò)對(duì) “手動(dòng)移動(dòng)文件夾”的操作范圍及途徑進(jìn)行權(quán)限設(shè)定,避免人為存放文件混亂而導(dǎo)致相關(guān)重要“文件夾磁盤空間滿”現(xiàn)象。
2.1.1 “手動(dòng)復(fù)制/移動(dòng)操作” 、“壓縮/解壓縮操作” 、“SSH數(shù)據(jù)傳輸操作”集中權(quán)限設(shè)置
摒棄了“在操作系統(tǒng)中設(shè)置寫(xiě)入權(quán)限”的方法(該權(quán)限范圍過(guò)大,會(huì)在限制手動(dòng)移動(dòng)文件夾操作的同時(shí),限制應(yīng)用程序運(yùn)行過(guò)程中與非權(quán)限文件夾之間的正常數(shù)據(jù)交換)。采用 “攔截過(guò)濾”的方式,通過(guò)一個(gè)程序來(lái)集中完成對(duì)文件“手動(dòng)復(fù)制/移動(dòng)操作”(調(diào)用CP/MV命令)、“壓縮/解壓縮操作”(調(diào)用tar、zip、rar、unzip、unrar命令)、“SSH數(shù)據(jù)傳輸操作”(調(diào)用CP/MV命令)的文件移動(dòng)路徑范圍進(jìn)行權(quán)限限制。具體流程如圖1所示。
圖1 集中權(quán)限管理流程
裝入cp(mv、tar、unzip、unrar)操作:先將原cp(mv、tar、unzip、unrar)重命名為mycp(my mv、tar、unzip、unrar),然后按原命令執(zhí)行路徑進(jìn)行包裝。
權(quán)限識(shí)別操作:先讀取該用戶保存的設(shè)置,然后判斷目標(biāo)路徑是否在允許范圍之內(nèi)。
2.1.2 設(shè)置限制文件“FTP數(shù)據(jù)傳輸路徑”權(quán)限
在日常維護(hù)中FTP工具也是文件移動(dòng)途徑之一。通過(guò)在操作系統(tǒng)中“修改FTP服務(wù)器配置”的方式,實(shí)現(xiàn)對(duì)“文件FTP數(shù)據(jù)傳輸范圍”進(jìn)行限制,使FTP工具只能在指定文件夾中進(jìn)行復(fù)制/移動(dòng)文件操作。具體流程如圖2所示。
圖2 FTP路徑權(quán)限管理流程
本模塊調(diào)用“du-sh”命令,同時(shí)對(duì)多個(gè)文件夾磁盤空間進(jìn)行監(jiān)視及閾值告警,其文件夾的路徑及告警閾值均可進(jìn)行選項(xiàng)設(shè)置。
另外,以一定時(shí)間間隔運(yùn)行檢查程序,自動(dòng)讀取設(shè)置,并比對(duì)預(yù)設(shè)值(監(jiān)視目標(biāo)路徑是否達(dá)到最大值)。具體流程如圖3所示。
圖3 文件夾空間監(jiān)視流程
圖3中的core為核心處理模塊,對(duì)設(shè)置路徑的空間使用情況與預(yù)設(shè)值進(jìn)行對(duì)比。
歷史垃圾文件主要是指:1年前的部分歷史數(shù)據(jù)庫(kù)文件、錄波文件、操作系統(tǒng)運(yùn)行中產(chǎn)生的tmp臨時(shí)文件、程序異常產(chǎn)生的core文件、日常運(yùn)行中產(chǎn)生的操作系統(tǒng)log日志文件及應(yīng)用程序產(chǎn)生的程序log日志文件。按文件類型分為文本文件及數(shù)據(jù)庫(kù)文件兩大類。
通過(guò)對(duì)需清理的文件特征及路徑進(jìn)行分別設(shè)定,然后根據(jù)不同文件類型(文本文件、Oracle數(shù)據(jù)庫(kù)文件或MYSQL數(shù)據(jù)庫(kù)文件)集成相應(yīng)刪除功能,實(shí)現(xiàn)對(duì)相關(guān)文件進(jìn)行一鍵式刪除。
2.3.1 文本文件刪除功能
集成文本文件刪除指令對(duì)文件夾路徑及文件特征(特殊的文件后綴,可添加設(shè)置)進(jìn)行選項(xiàng)設(shè)置組合,根據(jù)文件的后綴名來(lái)判斷文件的類型,根據(jù)文件的最后修改時(shí)間進(jìn)行刪除選項(xiàng)設(shè)置。
2.3.2 數(shù)據(jù)庫(kù)文件刪除功能
采用調(diào)用數(shù)據(jù)庫(kù)函數(shù)(包含Oracle及MYSQL等數(shù)據(jù)庫(kù)),刪除數(shù)據(jù)庫(kù)數(shù)據(jù)的方式。
調(diào)用數(shù)據(jù)庫(kù)函數(shù)(可根據(jù)相應(yīng)的數(shù)據(jù)庫(kù)類型進(jìn)行設(shè)置),輸入需清理數(shù)據(jù)的服務(wù)器IP地址(可設(shè)置),用戶名及密碼(可設(shè)置),輸入路徑(數(shù)據(jù)庫(kù)名及表名,可設(shè)置),該組合選項(xiàng)中還應(yīng)根據(jù)文件的時(shí)間進(jìn)行刪除選項(xiàng)設(shè)置,其中數(shù)據(jù)庫(kù)歷史文件的結(jié)構(gòu)分為2種:① 在特定表中,以數(shù)據(jù)的方式存在(執(zhí)行在表中刪數(shù)據(jù)操作),可在表中利用數(shù)據(jù)庫(kù)固有的功能對(duì)歷史數(shù)據(jù)進(jìn)行時(shí)間檢索[7]; ② 在特定庫(kù)文件中,以表的方式存在(執(zhí)行在庫(kù)中刪表的操作),該歷史表的文件名帶具體時(shí)標(biāo),如201707,其中帶時(shí)標(biāo)的表可以刪,不帶時(shí)標(biāo)的表都不能刪除。刪除數(shù)據(jù)的時(shí)間選項(xiàng)按如下要求:該軟件清理數(shù)據(jù)功能選項(xiàng)設(shè)置,且清除X年前(可設(shè)置,其中如果清理所有數(shù)據(jù),按0年進(jìn)行設(shè)置)數(shù)據(jù)的功能,每個(gè)刪除項(xiàng)目均可進(jìn)行不同的時(shí)間刪除設(shè)置,實(shí)現(xiàn)對(duì)各刪除對(duì)象設(shè)定名字。具體流程如圖4所示。
圖4 文件綜合識(shí)別與清理流程
該模塊將“配置修改事件”和“歷史垃圾清理事件”及“通訊狀態(tài)檢測(cè)與告警事件”進(jìn)行集中信息采集。
2.4.1 配置修改事件管理
為防止人為修改已設(shè)定好的軟件功能設(shè)置信息,該軟件具有配置文件修改的事件記錄功能及權(quán)限密碼,且有友好選項(xiàng)界面方便查詢。當(dāng)該文件由于修改設(shè)置文件造成服務(wù)器故障,則可根據(jù)事件報(bào)告進(jìn)行“追責(zé)管理”。
2.4.2 歷史垃圾清理事件管理
將該軟件中的歷史垃圾清理模塊中的文件刪除時(shí)間、大小、路徑及文件名,生成事件記錄進(jìn)行收集。
2.4.3 事件數(shù)據(jù)集中管理
設(shè)定2個(gè)事件主站服務(wù)器,建立事件信息集中管理系統(tǒng),如圖5所示。
圖5 事件信息集中管理系統(tǒng)圖
在需要安裝該軟件的同一網(wǎng)絡(luò)連接的各服務(wù)器中,選擇2臺(tái)作為事件主站服務(wù)器,其他作為子站服務(wù)器。2臺(tái)事件主站服務(wù)器通過(guò)增加IP地址(每個(gè)IP地址可以定義一個(gè)機(jī)器名稱)的方式,將各子站的事件數(shù)據(jù)進(jìn)行收集,一旦子站服務(wù)器和事件主站服務(wù)器有事件記錄信息生成時(shí),立即上傳到安裝同樣軟件的2個(gè)主站事件服務(wù)器的專用事件記錄中存貯,以防止本機(jī)故障、重裝系統(tǒng),造成本機(jī)軟件上的事件信息記錄丟失,以實(shí)現(xiàn)重要“事件信息記錄”的雙重保險(xiǎn)(一個(gè)存于本機(jī),其他存于2臺(tái)事件服務(wù)器)。2臺(tái)事件服務(wù)器的事件記錄(一個(gè)存于本機(jī),1個(gè)存于另一臺(tái)事件服務(wù)器)。
2.4.4 通訊狀態(tài)檢測(cè)與告警事件管理。
如圖5所示,事件主站服務(wù)器1及事件主站服務(wù)器2,每隔1天檢測(cè)一次與各子站服務(wù)器與事件主站服務(wù)器1及事件主站服務(wù)器2之間的網(wǎng)絡(luò)通訊狀態(tài)。當(dāng)網(wǎng)絡(luò)通訊狀態(tài)異常時(shí),發(fā)出告警信號(hào),同時(shí)生成通訊異常告警信息記錄(標(biāo)明網(wǎng)絡(luò)中斷服務(wù)器的名稱及網(wǎng)絡(luò)地址及中斷時(shí)間); 當(dāng)網(wǎng)絡(luò)通訊狀態(tài)恢復(fù)正常后,將告警信號(hào)復(fù)歸,且同時(shí)生成“通訊恢復(fù)”信息記錄(標(biāo)明網(wǎng)絡(luò)恢復(fù)服務(wù)器的名稱及網(wǎng)絡(luò)地址及恢復(fù)時(shí)間)。
由于該軟件的“限制文件夾手動(dòng)移動(dòng)操作”及“限制文件夾壓縮及解壓縮操作”均采用程序過(guò)濾攔截的方式實(shí)現(xiàn),這樣就需要該軟件實(shí)時(shí)運(yùn)行方可生效。因此,需采取以下3種措施,以防止在“開(kāi)機(jī)不啟動(dòng)該軟件”及“操作前軟件退出”和“卸載該軟件”情況下,該軟件功能無(wú)法生效[8]。3種措施分別如下:
1) 軟件開(kāi)機(jī)自啟動(dòng)方式自動(dòng)設(shè)置
在不影響服務(wù)器現(xiàn)有應(yīng)用程序運(yùn)行的情況下,在當(dāng)前服務(wù)器用戶(非超級(jí)用戶)下[9],實(shí)現(xiàn)當(dāng)該軟件啟動(dòng)時(shí),對(duì)該軟件自動(dòng)進(jìn)行開(kāi)機(jī)自啟動(dòng)設(shè)置。
2) 軟件退出專用密碼
針對(duì)“將該軟件退出操作”,設(shè)置專用密碼,對(duì)該操作進(jìn)行管控。
3) 增加本軟件卸載難度
為防止該軟件被人為卸載,增加該軟件的卸載難度[10]。采取如下措施:
① 刪除該軟件的專用卸載文件;
② 刪除該軟件安裝過(guò)程記錄的日志文件;
③ 對(duì)該軟件的安裝文件夾設(shè)置專用訪問(wèn)賬號(hào)及密碼。
該軟件設(shè)置總體權(quán)限賬戶管理,修改設(shè)置事件記錄管理,手動(dòng)及自動(dòng)啟動(dòng)功能方式管理,文件設(shè)定格式分類提示,并滿足不同操作系統(tǒng)的兼容性需求。該軟件的設(shè)計(jì)根據(jù)不同的事項(xiàng),按需求設(shè)置不同與之匹配復(fù)雜條件組合,從而實(shí)現(xiàn)事項(xiàng)目的。
該軟件在進(jìn)行路徑、文件特征、網(wǎng)絡(luò)地址、用戶名、數(shù)據(jù)庫(kù)等設(shè)置前,應(yīng)進(jìn)行該軟件的用戶名和密碼認(rèn)證,方可進(jìn)入“設(shè)置修改界面”。
該軟件清理數(shù)據(jù)功能設(shè)置,每隔X年(可設(shè)置)自動(dòng)啟動(dòng)各數(shù)據(jù)清理項(xiàng)(之前分模塊已設(shè)置)1次數(shù)據(jù)的功能,也應(yīng)有手動(dòng)立即啟動(dòng)各數(shù)據(jù)清理項(xiàng)(之前分模塊已設(shè)置)1次數(shù)據(jù)的功能。
各可設(shè)置的選項(xiàng)前有可點(diǎn)擊的幫助選項(xiàng),對(duì)設(shè)置要求進(jìn)行說(shuō)明,確保設(shè)置項(xiàng)格式的正確性,一旦設(shè)置錯(cuò)誤,會(huì)造成無(wú)法保存,并跳出“設(shè)置錯(cuò)誤窗口”,說(shuō)明配置錯(cuò)誤的具體選項(xiàng)錯(cuò)在哪。
該軟件兼容solaris unix和linux(麒麟,小紅帽5.6、5.8,凝思磐石等)操作系統(tǒng)。
本文所研制的軟件已在湖北電網(wǎng)500 kV咸寧變電站進(jìn)行掛網(wǎng)運(yùn)行試驗(yàn)。根據(jù)實(shí)際運(yùn)行發(fā)現(xiàn):該軟件能自動(dòng)刪除各類歷史垃圾文件,能有效防止人為混亂存放操作現(xiàn)象,實(shí)現(xiàn)空間監(jiān)視與預(yù)警等功能,且能做到記錄有據(jù)可查。該軟件不僅適用于電力行業(yè),同樣適用于其他多個(gè)行業(yè),為類Unix系統(tǒng)服務(wù)器的文件夾維護(hù)與管理工作開(kāi)辟了一條高效的新途徑。
[1] 鄧先友,呂濤,曹繼豐.500 kV變電站監(jiān)控系統(tǒng)升級(jí)改造分析[J].云南電力技術(shù),2009,37(6):87-88.
[2] 陳萍,黃冰,周曉陽(yáng).超高壓變電站監(jiān)控系統(tǒng)[J].電力自動(dòng)化設(shè)備,2007,27(7):116-118.
[3] 傅蕾,胡敏強(qiáng).變電站監(jiān)控軟件系統(tǒng)中內(nèi)存數(shù)據(jù)庫(kù)的研究[J].電力自動(dòng)化設(shè)備,2002,22(10):21-23.
[4] 王匯,嚴(yán)利雄,湯弋.變電站監(jiān)控系統(tǒng)故障分析及管理方案探討[J].湖北電力,2010,34(5):10-12.
[5] 樊陳,倪益民,竇仁暉,等.智能變電站一體化監(jiān)控系統(tǒng)有關(guān)規(guī)范解讀[J].電力系統(tǒng)自動(dòng)化,2012,36(19):1-5.
[6] 陸劍云,蘇和,張?jiān)骑w.500 kV某變電站監(jiān)控系統(tǒng)改造實(shí)例分析[J].華東電力,2014,42(12):2655-2658.
[7] 賀俊杰,趙淑,鄭寶慶,等.500 kV變電站監(jiān)控系統(tǒng)改造問(wèn)題探析[J].中國(guó)電力,2009,42(5):57-59.
[8] 呂贏想,劉毅,劉乃杰.500 kV雙龍變電站監(jiān)控系統(tǒng)的升級(jí)改造[J].浙江電力,2012,31(2):13-15.
[9] 陳伍軍,丁劍,曾慶凱.基于unix系統(tǒng)的不確定數(shù)據(jù)庫(kù)解決方案[J].計(jì)算機(jī)工程與應(yīng)用,2004,40(2):186-189.
[10] 史巧碩,范東月,柴欣,等.嵌入式Linux根文件系統(tǒng)的構(gòu)建與分析[J].計(jì)算機(jī)測(cè)量與控制,2015,23(2):656-659.
DevelopmentofDiskSpaceMonitoringandAutomaticMaintenanceSoftwareforUnix-LikeServerFolder
LI Ting, DEND Ke, ZHANG Huanqing, CAI Ang, FENG Ning, LIU Xiaohua, LI Wei, HONG Ye
(State Grid Hubei Corporation Maintenance Company, Wuhan 430050, China)
“Folder disk space full” problem causes serious harm on the Unix-like operating system server running, and it is difficult to handle and not easy to detect. This paper analyzes its causes, based on the underlying configuration of operating system, filtering interception method and manual cleaning method realize Unix-like system server folder disk space monitoring and automatic maintenance technology. The realization principle of the technology is analyzed emphatically, and the development and realization are realized. This software has realized to “folder space monitoring and alarm”, “intelligent recognition and automatic cleaning of historical garbage files”,“artificially written operation limits”, “important software running event reliable records”and other functions. The engineering practice shows that the function of the software is stable, which greatly reduces the probability of the problem and the difficulty of processing.
disk space;authority management;clean;folder
2017-07-17
國(guó)家電網(wǎng)公司科技項(xiàng)目(52152016000Q)
李挺(1982—),男,湖北武漢人,碩士研究生,主要從事電力系統(tǒng)繼電保護(hù)及自動(dòng)化方面的研究,E-mail:2911918928@qq.com。
李挺,鄧科,張煥青,等.類Unix系統(tǒng)服務(wù)器文件夾磁盤空間監(jiān)視及自動(dòng)維護(hù)軟件的研制[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2017(12):151-155,207.
formatLI Ting, DEND Ke, ZHANG Huanqing, et al.Development of Disk Space Monitoring and Automatic Maintenance Software for Unix-Like Server Folder[J].Journal of Chongqing University of Technology(Natural Science),2017(12):151-155,207.
10.3969/j.issn.1674-8425(z).2017.12.026
TP277
A
1674-8425(2017)12-0151-05
(責(zé)任編輯陳 艷)