AIX平台部分
1、 AIX平台下的Shell
cat log_check.sh
export yesterday=`awk 'NR==4' /home/oracle/IRS_EXEC/ago10.txt` export today=`date +%Y%m%d` if [[ -z $(ls /home/oracle/IRS_LOAD/bad) ]] && [ -f /home/oracle/IRS_EXEC/ctl_log/ok_$yesterday.dat ]; then echo [$today]'IRS数据装载及跑批成功完成!'>>log_check.log elif [ -f /home/oracle/IRS_LOAD/dat/ok_$yesterday.dat ]; then echo [$today]'IRS数据装载及跑批出错,请通知IRS内部评级系统相关人员!'>>log_check.log else echo [$today]'IRS数据装载及跑批出错,DAT源数据文件还未传到,请通知ODS及DW数据仓库系统相关人员!'>>log_check.log fi
说明:
² [ -z $(ls /home/oracle/IRS_LOAD/bad) ],在RedHat上测试是正确的,可以正常执行;但移植到AIX,执行不了,必须外面再加一层中括号才行,即:[[ -z $(ls /home/oracle/IRS_LOAD/bad) ]];目前还不太清楚原因。
² Shell的if结构:{if [];then elif[];then else fi};与之相对应,oracle的if语法结构为:if then elsif then end if;sqlserver的对应的是else if;一定要搞清楚,以免混淆。
² 此shell的依据,是根据跑批日志情况,来判断是否成功,以及如果不成功需要通知的责任人,将这些信息都记录到日志文件log_check.log中。
2、 另一个Shell产生的存有昨天日期的临时文件
cat ago10.txt
SQL> set heading off; SQL> SELECT TO_CHAR(SYSDATE-1, 'YYYYMMDD') ago10 FROM DUAL; 20100812 SQL> spool off;
说明:文件主要是用来取一个昨天的日期;由于在AIX不太好实现,所以借用一个oracle的方便。
3、 产生的日志样本
cat log_check.log
[20100813]IRS数据装载及跑批出错,请通知IRS内部评级系统相关人员! [20100813]IRS数据装载及跑批出错,DAT源数据文件还未传到,请通知ODS及DW数据仓库系统相关人员! [20100813]IRS数据装载及跑批成功完成!
WIN平台部分
1、 将日志文件从AIX拷到WIN上的ftp批处理
cat ftp.body
open 10.172.44.105 oracle oracle binary lcd D:/irs_运维查看 cd /home/oracle/IRS_EXEC get log_check.log bye
cat ftp_irs.bat
@echo off ftp -s:ftp.body exit
说明:ftp采用了把大部分ftp命令放在一个参数文件中的方式;至于是不是用二进制传输,没有严格的要求。
2、 总调度及结果查看程序
cat IRS系统数据加载及跑批结果显示.cmd
@echo off title IRS系统数据加载及跑批结果显示 color 72 start D:/irs_运维查看/ftp_irs.bat echo 将开始IRS日常运行结果的查看...... pause echo. type D:/irs_运维查看/log_check.log echo. echo IRS运维查看完成,请根据显示的最后一条提示内容,对今天的跑批结果进行相应处理! echo 注:此程序要在每天6:00以后执行才有意义! pause
说明:调ftp的批用start命令;批处理界面的标题及前景背景颜色显示,title IRS系统数据加载及跑批结果显示和color 72;调ftp批之后要用一个pause暂停,否则新传过来的日志文件内容,显示不到DOS界面上;echo.表示输出一个空行;@echo off表示输出的命令不显示出来,只显示命令执行的结果;type命令用来显示文件的内容,如同unix环境下的cat。
3、 终端界面结果显示
管理员:IRS系统数据加载及跑批结果显示
将开始IRS日常运行结果的查看......
请按任意键继续. . .
[20100813]IRS数据装载及跑批出错,请通知IRS内部评级系统相关人员!
[20100813]IRS数据装载及跑批出错,DAT源数据文件还未传到,请通知ODS及DW数据仓库系统
相关人员!
[20100813]IRS数据装载及跑批成功完成!
IRS运维查看完成,请根据显示的最后一条提示内容,对今天的跑批结果进行相应处理!
注:此程序要在每天6:00以后执行才有意义!
请按任意键继续. . .
说明:
log_check.sh文件可以加在AIX的crontab里面调度;ftp_irs.bat程序也可以加在win的任务计划定时调度,这样的话,IRS系统数据加载及跑批结果显示.cmd里面就不用再调ftp部分了;JLBK设定的时间分别为早上6:00和6:00以后,可以根据实际情况处理。