shell脚本怎么生成运行日志

发布网友 发布时间:2022-04-22 15:02

我来回答

2个回答

懂视网 时间:2022-05-06 22:02

目标 实现记录SHELL执行的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,脚本调用函数 源码 通用函数脚本program_log_new.sh function init_log(){sqlplus -S test/passw0rd@orcl EOFinsert into program_log values($id,$day,$1, s

目标

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

源码

通用函数脚本program_log_new.sh
function init_log()
{
sqlplus -S test/passw0rd@orcl <
#!/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     //发生异常,调用异常,程序退出

热心网友 时间:2022-05-06 19:10

自己写的脚本调用的日志打印函数,供参考

在脚本开头的工作
定义日志文件LOGFILE
定义日志序列号文件_LOGSEQ

定义日志函数
log()
{
#检查是否存在日志文件,如果存在,则检查文件是否过大(20M)
#过大时,切换文件,并将目前的日志序列号保存在_LOGSEQ中。
if [ -f $LOGFILE ];then
LogFileLen=`ls -l ${LOGFILE} | awk '{print $5}'`
if [ $LogFileLen -gt 20971520 ]; then
if [ -f ${_LOGSEQ} ] ; then
_OrgSeq="`cat ${_LOGSEQ}`"
if [ $_OrgSeq -gt 98 ];then
LogFileSeq=0
else
LogFileSeq=`expr ${_OrgSeq} + 1`
fi
else
LogFileSeq=0
fi
echo "${LogFileSeq}" > ${_LOGSEQ}
mv $LOGFILE ${LOGFILE}.${LogFileSeq}
fi
fi
_LogInfo=$1
echo `date +20'%y-%m-%d %H:%M:%S'`" ${_LogInfo} " >> ${LOGFILE} 2>&1
}

需要打日志时调用log函数即可

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com