shell格式化日志输出脚本

发布时间:2021-01-10编辑:脚本学堂
shell脚本处理日志文件,本文的脚本代码用于格式化日志输出,将收集到的日志数据格式化为结构清晰的结果,方便查看与分析日志有无异常。

知识点:
shell/ target=_blank class=infotextkey>shell脚本中的if结构控制语句、echo语句与linuxjishu/13830.html target=_blank class=infotextkey>awk命令的用法

代码:
 

复制代码 代码示例:
#!/bin/ksh
#
init_variables()
{
  if [ -s $HOME/.profile ]
  then
    . $HOME/.profile
  fi
  if [ -s $HOME/.bash_profile ]
  then
   . $HOME/.bash_profile
  fi
 
  if [ `uname | tr '[A-Z]' '[a-z]'` = "linux" ]
  then   
    echo_cmd='echo -e'
    unalias ls 2>/dev/null 1>&2
    awk_cmd='awk --posix'
  else
     echo_cmd='echo'
     awk_cmd='awk'
  fi
 
  log_file=${dir_name}/${script_name}.log
  log_cmd_info="eval $echo_cmd "[$dir_name/$script_name]" @`date +"%Y%m%d %T"` [info]:"
  log_cmd_error="eval $echo_cmd "[$dir_name/$script_name]" @`date +"%Y%m%d %T"` [error]:"
}
 
main_fun()
{
  ${log_cmd_info} "this is info message." | tee -a ${log_file}
  ${log_cmd_error} "this is error message." | tee -a ${log_file}
}
 
# main entrence
 
#1.get filename
script_name=`basename $0`
dir_name=`dirname $0`
 
#2.run init_variables
init_variables;
 
#3.run main_fun
main_fun;
 
#4.exit
exit 0