|
网络配置 | Linux | 2747 次查看 |
|---|---|---|
|
||
目前,许多银行的服务器端操作系统彩的是Unix系统。作为系统的中心平台,Unix上往往运行了大量的应用服务程序,以响应客户端的各种请求。随着银行业务的增多,应用范围的扩大,这些应用程序也越来越多,这就带来了一系列的维护负担和运行风险。由于每一次开机都需要管理员逐个启动应用服务程序(包括数据库系统),每一次关机也面临同样的问题以保证程序和数据的完整性。为将各种损失减少到最小,实现启停过程中各项操作的自动化管理具有十分重要的意义。本文以SCO Unix OpnServer 5.0 为便,介绍实现应用服务程序的自动启停方法。 启停过程 SCO Unix OpenServer系统启动和关机时调用的各种程序存放在/etc/init.d目录下,并在/etc/rcn.d目录(其中n代表运行级: 0、1、2、3)中建立了相应的符号连接,对应系统开关时所执行的各项步骤。Unix启动过程由boot程序引导核心:/stand/unix开始,随后启动一个称为init的进程,顺序执行/etc/inittab文件中所列的程序项,最后引导系统进入特定的运行级。相关的文件和目录主要有: /etc/default/boot /etc/init.d及/etc/rcn,/etc/rcn.d (n代表运行级) 其中/etc/default/boot是一个文本文件,规定了Unix引导过程的参数设置。/etc/inittab也是一个文本文件,其内容由独立的命令行组成。init进程顺序读取各行,生成相应的运行级,并指向文件/etc/rcn和目录/etc/rcn.d。/etc/rcn是一个shell程序,当系统进入运行级n时,init就将对应的rcn投入运行。例如运行级2对应文件/etc/rc2和目录/etc/rc2.d,/etc/rc2的主要任务是运行/etc/rc2.d目录下的所有shell程序文件,优先顺序由程序名来区分。 在任何时候,系统只能处在一个运行级上,即系统的运行模式惟一。SCO Unix OpenServer设置了6种运行模式:0、1、2、3、6、S。其中0代表关机,1和S代表进入单用户进行系统维护,6代表系统重启,2和3表示进入多用户,3比2多了启动远程文件共享(RFS)和相应的守护进程,使本机可以连到RFS网络,以实现网络资源共享。 本文示例要求Unix系统引导完毕后自动启动Informix-Online 数据库系统,然后启动中间件产品(TongLINK/TongEASY通信软件,位于/home/tong目录下)及备份代理服务程序 /etc/bkupexec/agent.be,关机时按以上反方向顺序自动关闭程序和处理数据。 根据以上要求,可手动编写两个shell程序:DBcomm及Backup。DBcomm处理数据库及通信软件,Backup处理备份代理服务程序。 数据库及通信软件的启停处理 1.以server用户注册,建立shell程序start.sh 和 stop.sh,负责数据库及通信进程的启动和关闭。 $vi /home/server/bin/start.sh oninit sleep 5 tld tminit $vi /home/server/bin/stop.sh tld stop tmend -97 onmode -ky sleep 5 2.以root用户注册,在/etc/init.d/目录下建立DBcomm 程序。 #vi /etc/init.d/DBcomm PATH=/bin:/usr/bin:/etc export PATH rval=0 set_return() { /*实现正常退出*/ …… } case $1 in /*执行start.sh程序,启动数据库和通信进程*/ ‘start’) if [ -x /home/server/bin/start.sh ]; then su -l server -c start.sh set_return else rval=2 fi ;; /*执行stop.sh,关闭数据库及通信进程*/ ‘stop’) if [ -x /home/server/bin/stop.sh ]; then su -l server -c stop.sh set_return else rval=2 fi ;; *) echo “usage: $0 {start|stop}” rval=1 ;; esac exit $rval 备份代理服务程序 在/etc/init.d目录下建立备份代理服务程序:Backup。 #vi /etc/init.d/Backup DESTDIR=/etc/bkupexec if [ ! -d $DESTDIR ]then exit fi case “$1” in /*启动备份代理进程*/ ‘start’) if [ -x $DESTDIR/agent.be ]then $DESTDIR/agent.be -c $DESTDIR/agent.cfg 2>$DESTDIR/agent.log & fi ;; /*关闭备份代理进程*/ ‘stop’) pid=` ps -e|grep agent.be|sed -e ‘s/^ *//’ -e ‘s/.*//’` /*查找进程*/ if [ “${pid}”!= “” ]then kill ${pid} fi ;; *) echo “Usage: /etc/init.d/agent.be { start | stop }” ;; esac 符号连接 首先,建立到目录/etc/rc2.d下的符号连接,以实现Unix系统引导后的自动调用。该目录下程序均以P或S开头命名,P开头的优先运行,S次之,P和S后的数字按从小到大顺序执行。假设S后的数字最大已到99,执行以下命令: #ln -s /etc/init.d/DBcomm /etc/rc2.d/S100DBcomm #ln -s /etc/init.d/Backup /etc/rc2.d/S101Backup 然后,建立到目录/etc/rc0.d下的符号连接,以实现Unix系统关机前的自动调用。该目录下的程序均以K打头,运行顺序同上。因为首先需要安全关闭应用程序,所以新建连接K后的数字要小于现有数字。假设当前最小为10,执行以下命令: #ln -s /etc/init.d/Backup /etc/rc0.d/K05Backup #ln -s /etc/init.d/DBcomm /etc/rc0.d/K06DBcomm 小 结 经过上述设置后,每当在Unix系统中追加一项应用服务程序时,只需在/etc/init.d中编写类似shell程序,同时建立到/etc/rc0.d 和/etc/rc2.d的符号连接,便可轻松实现应用服务程序的自动化管理,数据也得到了充分有效的保护。 |
||