王秀茹 贾敏 戴堃
摘 要: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 "// 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-),女,本科,工程师,自动化专职,主要研究方向:电力系统自动化。