Linux shell脚本输出日志笔记整理(必看篇)

所属分类: 脚本专栏 / linux shell 阅读数: 1116
收藏 0 赞 0 分享

1、日志方法简介:

#日志名称
log="./upgrade.log"  #操作日志存放路径 
fsize=2000000      #如果日志大小超过上限,则保存旧日志,重新生成日志文件    
exec 2>>$log  #如果执行过程中有错误信息均输出到日志文件中 

#日志函数
#参数
  #参数一,级别,INFO ,WARN,ERROR
    #参数二,内容
#返回值
function zc_log()
{
  #判断格式
  if [ 2 -gt $# ]
  then
    echo "parameter not right in zc_log function" ;
    return ;
  fi
  if [ -e "$log" ]
  then
    touch $log
  fi
  
  #当前时间
  local curtime;
  curtime=`date +"%Y%m%d%H%M%S"`
  
  #判断文件大小
  local cursize ;
  cursize=`cat $log | wc -c` ;

  if [ $fsize -lt $cursize ]
  then
    mv $log $curtime".out"
    touch $log ;
  fi  
  #写入文件
  echo "$curtime $*" >> $log;
} 

2、使用举例

shell脚本内容:

#! /bin/bash
#数据库变量
localpasswd=xxxx
mysqlhost=xxxx
mysqluser=xxxx
mysqlpasswd=xxxx 

#日志名称
log="./upgrade.log"  #操作日志存放路径 
fsize=2000000         
exec 2>>$log  #如果执行过程中有错误信息均输出到日志文件中 

#日志函数
#参数
  #参数一,级别,INFO ,WARN,ERROR
    #参数二,内容
#返回值
function zc_log()
{
  #判断格式
  if [ 2 -gt $# ]
  then
    echo "parameter not right in zc_log function" ;
    return ;
  fi
  if [ -e "$log" ]
  then
    touch $log
  fi
  
  #当前时间
  local curtime;
  curtime=`date +"%Y%m%d%H%M%S"`
  
  #判断文件大小
  local cursize ;
  cursize=`cat $log | wc -c` ;

  if [ $fsize -lt $cursize ]
  then
    mv $log $curtime".out"
    touch $log ;
  fi  
  #写入文件
  echo "$curtime $*" >> $log;
} 


echo "start update shell" ;

mysql -h$sqlip -u$sqluser -p$sqlpasswd -e "use $db;
set names gbk;

--
-- 表的结构 msgm_qdjyly
--

DROP TABLE IF EXISTS msgm_qdjyly;
CREATE TABLE IF NOT EXISTS msgm_qdjyly (
 jylyid int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
 jylb varchar(20) DEFAULT NULL COMMENT '交易类别',
 jylbmc varchar(50) DEFAULT NULL COMMENT '交易类别名称',
 jgm varchar(10) NOT NULL COMMENT '机构码',
 lyfs int(11) NOT NULL COMMENT '路由方式,1指定渠道,2按卡bin渠道',
 qdbh varchar(20) DEFAULT NULL COMMENT '渠道编号',
 qdmc varchar(50) DEFAULT NULL COMMENT '渠道名称',
 zt int(11) NOT NULL DEFAULT '1' COMMENT '状态,1正常,2关闭',
 bz varchar(100) DEFAULT NULL COMMENT '备注',
 PRIMARY KEY (jylyid)
) ENGINE=InnoDB DEFAULT CHARSET=gbk COMMENT='交易路由信息' AUTO_INCREMENT=7 ;
zc_log INFO "执行 CREATE TABLE msgm_qdjyly 命令的结果为 : $? " ; 
echo "执行 CREATE TABLE msgm_qdjyly 命令的结果为 : $? " ; 

以上这篇Linux shell脚本输出日志笔记整理(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

linux sudo密码输入时显示星号的操作方法

在输入linux sudo密码的时候终端是不显示任何东西的,我们不知道我们按下的密码到底输入进去了没有,如果可以像在网站上登录账号密码的时候显示星号多好,下面小编给大家介绍下linux sudo密码输入时显示星号的操作方法
收藏 0 赞 0 分享

如何让history命令显示日期和时间

我们都对 history 命令很熟悉。它将终端上 bash 执行过的所有命令存储到 .bash_history 文件中,来帮助我们复查用户之前执行过的命令。这篇文章主要介绍了让history命令显示日期和时间的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

shell实现图书管理系统

这篇文章主要介绍了shell实现图书管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

shell实现学生成绩管理系统

这篇文章主要为大家详细介绍了shell实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

shell编程实现学生成绩管理系统

这篇文章主要为大家详细介绍了shell编程实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

利用Linux中的crontab实现分布式项目定时任务功能

crond是Linux用来定期执行程序的命令.这篇文章主要介绍了利用Linux中的crontab实现分布式项目定时任务,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux之时钟中断详解

这篇文章主要介绍了Linux之时钟中断详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

linux系统上传下载命令rz和sz的教程

这篇文章主要介绍了linux系统上传下载命令rz和sz的安装测试方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell编程之特殊变量的笔记小结

这篇文章主要介绍了Shell编程之特殊变量的笔记小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解Shell编程之变量数值计算(一)

本篇文章主要介绍了详解Shell编程之变量数值计算,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多