shell 脚本执行日志通用模块

Posted phlsheji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 脚本执行日志通用模块相关的知识,希望对你有一定的参考价值。

目标

实现记录SHELL执行的開始时间,结束时间。执行状态,错误信息等,以函数封装日志记录的方式,脚本调用函数

源代码

通用函数脚本program_log_new.sh
function init_log()
{
sqlplus -S test/[email protected] <<EOF
insert into program_log values($id,$day,'$1', sysdate,null,'S',null);
commit
exit
EOF
}
function modify_status(){
sqlplus -S test/[email protected] <<EOF
update program_log set program_status='$1',end_date=sysdate where id=$id;
commit
exit
EOF
}


function exception_write(){
if [ $? -ne 0 ]
then
 modify_status $status2
exit 1
fi
}
function finish_write(){
if [ $? -eq 0 ]
then
 modify_status $status1
#modify_status $1 $2 $3
 else
#  modify_status $1 $2 $3
 modify_status $status2
exit 1
fi
}
status1=C
status2=F
day=`date "+%Y%m%d"`
id=`sqlplus -S user/[email protected] <<EOF
set heading off
select  program_log_seq.nextval from dual;
commit
exit
EOF`
#!/bin/sh
. ~/.bash_profile
source program_log_new.sh    //公用脚本

init_log sh_xx                                            //初始化日志函数调用,传入程序名

shell命令xxx 2>${logdir}/xx_$time.log          
exception_write                                       //发生异常。调用异常,程序退出

shell命令xxx 2>${logdir}/xx_$time.log          
exception_write                                       //发生异常。调用异常。程序退出
....
shell命令xxx 2>${logdir}/xx_$time.log          
finish_write                                       //发生异常,调用异常,程序退出



以上是关于shell 脚本执行日志通用模块的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习总结(76)—— Shell 脚本日志技巧

Linux学习总结(76)—— Shell 脚本日志技巧

shell定期删除日志脚本

如何将一shell脚本中的每一步命令执行结果输出到指定日志文件中

shell 脚本执行日志怎么才能带有时间戳

在shell脚本中执行mysql,调用sql文件,将sql文件执行结果存入新的日志文件中,但日志文件没有sql结果