- 论坛徽章:
- 0
|
银行营业网点终端死机的另类自救
作者:农行凉山州分行 杨绍伟
银行营业网点终端死机后,通常的做法是:先关闭终端,稍候再开机;若不能激活,则打电话到地区中心前置机值班员,请求kill!这样做既费力、费钱又费时。这里介绍一种基于Server/Client模型的自助激活实现方案:它使柜员能够利用一台在线活动终端,只敲几个键便立马救活死亡终端。
● 操作系统:SuSe linux 8
● 设 局:
1、 以root用户登录;
2、 在/home建子目录/killer
3、 在上述目录/killer下放置一对shell程序ks和kc,权限分别为700和755;
★程序ks的设计思路是:作为服务器端守护进程,等待从管道过来的“终端号”,ks文本如下:
―――――――――――――――――――――――――
#!/bin/sh
#Author:Yang s.w. All rights reserved !
if [ ! –p /home/killer/sos ]
then
mkfifo sos
fi
echo "Terminal killer is working......"
while :
do {
read msg
if test -z $msg
then
continue
else
ps -t $msg -h -o pid |sort -r |\
while read pid
do
kill -9 $pid
done
fi
}
done < /home/killer/sos
―――――――――――――――――――――――――
程序ks首次运行后,/killer目录会生成“管道”文件sos,给其授权755。
★程序kc的设计思路是:接受客户端柜员输入的终端号并将其送入管道,kc文本如下:
―――――――――――――――――――――――――
#! /bin/sh
#Author:Yang s.w. All rights reserved !
n1="tty"
while :
do
echo "操作提示:请输入终端号的后2位Enter,或直接按Enter键退出!"
echo -n "要杀的终端号是:tty"
read n2
if test -z $n2
then
echo "再见,祝工作顺利。"
break
else
n=$n1$n2
echo $n > /home/killer/sos
continue
fi
done
―――――――――――――――――――――――――
4、在/etc/passwd文件中添加如下一行(“”内文本):
“killer::999:999:,,,,:/home/killer:/home/killer/kc”
目的是给客户端提供一个输入终端号且仅仅是输入终端号的login用户killer。
5、在服务器上启动ks“杀手进程”。
● 客户端(柜员)操作:
1、 以“killer”用户登录,无口令;
2、 键入待杀终端号的末2位回车――>即杀!
3、 无任何输入回车――>退出。
● 评价:
1、 柜员操作简单;
2、 终端实时激活;
3、 节省电话费开支,无需中心(前置机)人员为此(kill)事值守;
4、 因为引入了“管道”的FIFO、单向通信和隔离机制,客户端(柜员)操作并无root(超级用户)权限,确保了前置机(服务器)的安全。
<全文完> |
|