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

所属分类: 脚本专栏 / linux shell 阅读数: 1058
收藏 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 Shell入门:掌握Linux,OS X,Unix的Shell环境

这篇文章主要介绍了linux Shell入门:掌握Linux,OS X,Unix的Shell环境 ,需要的朋友可以参考下
收藏 0 赞 0 分享

shell 1>&2 2>&1 &>filename重定向的含义和区别

这篇文章主要介绍了shell 1>&2 2>&1 &>filename重定向的含义和区别,需要的朋友可以参考下
收藏 0 赞 0 分享

ssh远程执行命令方法和Shell脚本实例

这篇文章主要介绍了ssh远程执行命令方法和Shell脚本实例,本文讲解了ssh执行远程操作方法和远程执行命令shell脚本示例,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell中的${}、##和%%使用范例

这篇文章主要介绍了Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本一次读取文件中一行的2种写法

这篇文章主要介绍了Shell脚本一次读取文件中一行的2种写法,本文还同时讲解了Shell读取文本文件的2种方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本逐行读取文本文件(不改变文本格式)

这篇文章主要介绍了Shell脚本逐行读取文本文件,本文着重探讨不改变文本格式的方法读取出文件内容,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本配合iptables屏蔽来自某个国家的IP访问

这篇文章主要介绍了Shell脚本配合iptables屏蔽来自某个国家的IP访问,本文利用IPdeny的IP数据,然后用Shell脚本导入iptables实现屏蔽IP访问,需要的朋友可以参考下
收藏 0 赞 0 分享

Bash脚本内置的调试方法技巧

这篇文章主要介绍了Bash脚本内置的调试方法技巧,本文介绍了调试技巧和几个调试技巧,比如输出行号的方法、只调试某段程序的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell、Perl、Python、PHP访问 MySQL 数据库代码实例

这篇文章主要介绍了Shell、Perl、Python、PHP访问 MySQL 数据库代码实例,本文分别给出这几种语言访问Mysql数据的代码实例,需要的朋友可以参考下
收藏 0 赞 0 分享

Shell脚本计算字符串长度和判断字符串为空小技巧

这篇文章主要介绍了Shell脚本计算字符串长度和判断字符串为空小技巧,本文分别给出计算字符串长度和判断字符串为空各3种实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多