王秀茹 賈敏 戴堃
摘 要:D5000系統平臺是目前電力行業采用的先進調度主站系統,在實際使用過程中,由于D5000系統基于Linux系統為平臺,有大量操作需要在命令行方式下進行,對維護人員的專業素質有較高要求,本文通過將各種命令制作成Shell腳本程序等方法來簡化命令行環境下的操作,為維護人員快速簡便維護提供了一種方式。
關鍵詞:電力系統;D5000;Shell
D5000系統平臺采用先進的軟件開發技術,具有標準、開放、可靠、安全和適應性強等特點,在實際使用過程中,大量系統維護操作需要在命令行方式下完成,本文通過將各種命令制作成Shell腳本程序等方法來簡化命令行環境下的操作,為維護人員快速簡便維護工作提供了一種方式。
1 D5000系統結構
D5000運行于國產Linux內核的操作系統之上。Linux是在GUN公共許可權限下符合POSIX標準的操作系統,Linux是一種類似UNIX的操作系統,具有和UNIX類似的文件系統、用戶接口。
2 標準Linux命令
2.1 Linux命令
Linux命令是很重要的工具,所謂命令,是我們在命令行輸入的一串字符。Shell負責理解并執行這些字符串。Linux系統將命令行分成3個字段:命令名、命令選項和命令參數。以ls命令為例,“sy1-wh1:/home/d5000/suqian/data/screen_save # ls -l \Desktop”。ls:命令名,-l:命令選項,\Desktop:命令參數。
2.2 Shell簡介
Shell本身是一種用C語言編寫的程序,從用戶的角度來看,Shell是用戶與Linux操作系統溝通的橋梁。用戶既可以輸入命令執行,又可以利用Shell腳本編程,完成更加復雜的操作。Shell種類眾多,常見的有:Bourne Shell、Bourne Again Shell、C Shell、K Shell等,在D5000系統中,默認使用的是Bourne Again Shell。
以導出數據庫中某一變電站信息表的操作為例。操作步驟如下:
從數據庫中找出“**變**表”,保存顯示內容,插入U盤,在Shell中輸入命令拷貝內容至U盤
sy1-wh1:/home/d5000/suqian/data/screen_save % su
口令:
sy1-wh1:/home/d5000/suqian/data/screen_save # fdisk -l
sy1-wh1:/home/d5000/suqian/data/screen_save # mount /dev/sde1 /mnt
sy1-wh1:/home/d5000/suqian/data/screen_save # cp 眾興變遙測表 /mnt
sy1-wh1:/mnt # umount /mnt
可以看出,一個簡單的文件拷貝至U盤的過程在D5000系統中都需要進行如此煩瑣的操作。所以,通過Shell編程對D5000系統的各項操作過程進行自動化是必要且行之有效的。
2.3 Shell腳本
Shell的一個重要特性是它自身是一個解釋型的程序設計語言,它會解釋并執行命令提示符下輸入的命令。要多次執行一組命令,可以將這組命令放在一個命令文件中,然后可以像Linux系統提供的其他程序一樣執行這個文件,這個命令文件就叫作Shell腳本。為了讓Shell能讀取并執行Shell腳本,Shell腳本的文件權限必須設置為可讀和可執行。
2.4 Shell腳本格式
Shell腳本以“#!/bin/sh”開始,符號“#!”用來告訴系統它后面的參數是用來執行該文件的程序。當編輯好腳本時,如果要執行該腳本,還必須使其可執行。要使腳本可執行:chmod +x filename 然后,可以通過輸入:sh+filename 來執行腳本。
3 D5000命令輸入的簡化
由上可知,通過Shell腳本編程可以將D5000系統常用到的命令行操作制作成腳本文件形式保存在計算機上,待需要使用時直接調用該腳本文件即可。以U盤拷貝為例,寫成Shell腳本文件部分內容如下:
#!/usr/bin/expect
spawn $env(SHELL)
expect -exact "http:// sy1-wh1:/home/d5000/suqian % "
send -- "data\cd screen_save\r"
send -- "su\r"
expect -exact "su\r\r
口令:"
send -- "root\r"
send -- "fdisk -l\r"
send -- "mount /dev/sdd1 /mnt\r"
send -- "cp 眾興變遙測表 /mnt\r"
普通Shell命令可以實現簡單的控制流功能,如循環、判斷等。但是對于需要交互的場合則必須通過人工來干預,有時候我們可能會需要實現和交互程序如telnet服務器;輸入用戶名、密碼等進行交互的功能。而expect就使用來實現這種功能的工具。這里我們使用expect制作腳本文件,從而實現了自動輸入用戶名密碼的交互功能。
4 結論
通過現場實際使用數月的反饋信息,在不影響D5000系統安全性的前提下,通過將D5000常用命令行操作制作成腳本文件的方式,可以較好地簡化自動化運維人員的工作負擔,提高工作效率,由于Linux系統的特點,不同腳本文件可以互相套用,幾個小簡單的腳本程序可以通過組合成為一個復雜的腳本程序,自動完成較復雜的任務。通過腳本程序完成的操作,可以減少人為輸入命令錯誤的概率,減少重復勞動,有利自動化運維人員將更多精力放在運維工作上。
參考文獻:
[1]D.坦思.LINUX與UNIX Shell編程指南[M].機械工業出版社,2000.
[2]Matt Welsh,Matthias Dalheimer.LINUX權威指南[M].中國電力出版社,2000.
作者簡介:
王秀茹(1976-),女,本科,高級工程師,大二次設備專職,主要研究方向:電力系統自動化;賈敏(1983-),男,本科,工程師,主要研究方向:電力系統繼電保護及自動化;戴堃(1984-),女,本科,工程師,自動化專職,主要研究方向:電力系統自動化。