• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell日志颜色处理及清理系统日志的方法

    记录一下shell日志颜色处理

    _COLORS=${BS_COLORS:-$(tput colors 2>/dev/null || echo 0)}
    __detect_color_support() {
      # shellcheck disable=SC2181
      if [ $? -eq 0 ]  [ "$_COLORS" -gt 2 ]; then
        RC='\033[1;31m'
        GC='\033[1;32m'
        BC='\033[1;34m'
        YC='\033[1;33m'
        EC='\033[0m'
      else
        RC=""
        GC=""
        BC=""
        YC=""
        EC=""
      fi
    }
    __detect_color_support
    echoerror() {
      printf "${RC} * ERROR${EC}: %s\\n" "$@" 1>2;
    }
    echoinfo() {
      printf "${GC} * INFO${EC}: %s\\n" "$@";
    }
    echowarn() {
      printf "${YC} * WARN${EC}: %s\\n" "$@";
    }

    下面看下shell清理系统日志

    1.设置日志峰值,到达则删除
    2.定时检测,crontab添加定时任务
    3.后台挂载 : ./xx.sh

    工作脚本:

    #! /bin/sh
    #日志目录及限定大小
    workdir="/var/*.log"
    maxsize=100
    #搜索最老文件,不加目录默认的本目录里边的文件 r倒序输出 t时间 head -n1取第一行 awk命令括号$1位文件名 管道连接
    oldfile(){
     oldfile=`ls $workdir -t 2>/dev/null| head -n1 | awk '{printf $1}'`
    }
    clear_old_log(){
     if [ ! $oldfile ]
     then
      #echo "日志不存在" 1>/dev/null
      return 0
     fi
      while true;
     do
      oldfile
      if [ ! $oldfile ]
      then
        return 0
      fi
      logsize=`du -ms $oldfile 2>/dev/null| awk '{printf $1}'` #m表示兆 k b
      if [ $logsize -gt $maxsize ]
      then
      str1="log"
      str2="err"
      if [[ $oldfile == *$str1* ]] 
      then
      pkill snake
      rm -rf $oldfile
       fi
       if [[ $oldfile == *$str2* ]]
       then
      service mysql restart
      pkill snake
      rm -rf $oldfile
      fi
      else
      break
      fi
     done
    }
    testing(){
     
     while true;
     do
      workdir="/var/*.log"
      oldfile 
       clear_old_log
       workdir="/var/lib/mysql/*.err"
       oldfile
       clear_old_log
      done
    }
    testing
    定时任务脚本:
    #! /bin/sh
    #a=`pgrep -f test1.sh|wc -l`
    #if [ $(ps -ef|grep test.sh|wc -l) -gt 1 ]
    if test $(pgrep -f test.sh|wc -l) -ge 1
     then
     exit
    fi
    cd /home/zxd/
    ./test.sh
    下边这个带有日志时间加时间戳及系统负载检测:
    #! /bin/bash
    strA="long string"
    strB="string"
    result=$(echo $strA | grep "${strB}")
    if [[ "$result" != "" ]]
    then
      echo "包含"
    else
      echo "不包含"
    fi
    #日志目录及限定大小
    workdir="/var/*.log"
    maxsize=100
    #给文件加时间戳:函数里的变量必须在脚本函数后边跟着,这里$1不是命令行跟的参数,命令行的参数为脚本的$1
    filetime(){
     a=$(date +%Y%m%d%H%M%S)
     A=$1.$(date +%Y%m%d%H%M%S)
     echo $A
    }
    filetime "/var/log"
    #搜索最老文件,不加目录默认的本目录里边的文件 r倒序输出 t时间 head -n1取第一行 awk命令括号$1位文件名 管道连接
    oldfile(){
     oldfile=`ls $workdir -rt 2>/dev/null| head -n1 | awk '{printf $1}'`
    }
    clear_old_log(){
     if [ ! $oldfile ]
     then
      echo "日志不存在" 1>/dev/null
      return 0
     fi
      while true;
     do
      oldfile
      if [ ! $oldfile ]
      then
      echo "日志不存在" 1>/dev/null
       return 0
      fi
      logsize=`du -bs $oldfile 2>/dev/null| awk '{printf $1}'`
      if [ $logsize -gt $maxsize ]
      then
      str1="log"
      str2="err"
      if [[ $oldfile == *$str1* ]] 
      then
      pkill snake
      rm -rf $oldfile
       fi
       if [[ $oldfile == *$str2* ]]
       then
      service mysql restart
      pkill snake
      rm -rf $oldfile
       fi
      else
      break
      fi
     done
    }
    testing(){
     echo "run"
     while true;
     do
      oldfile 
       clear_old_log
       echo "222"
       workdir="/var/lib/mysql/libmaster.err"
       oldfile
       clear_old_log
      done
    }
    disk=`df |grep /dev/mapper/fedora-root | awk '{printf $5}' | sed 's/%//g'`
    echo "磁盘已用:%$disk"
    memtotal=`cat /proc/meminfo |grep MemTotal |awk '{printf $2}'`
    memfree=`cat /proc/meminfo |grep MemFree |awk '{printf $2}'`
    used=$((100- memfree*100/memtotal))
    echo "内存已用:%$used"
    echo "exit"
    testing

    总结

    以上所述是小编给大家介绍的shell日志颜色处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • 利用shell命令统计日志的方法详解
    • Linux shell脚本输出日志笔记整理(必看篇)
    • shell脚本实现分日志级别输出的方法
    • Shell脚本切割tomcat的日志文件
    • Linux下日志按日分割的shell
    • Powershell 查询 Windows 日志的方法
    • Shell脚本定期清空大于1G的日志文件
    • 深入理解Shell输出颜色与控制
    • 在shell或者perl中改变字体或背景的颜色
    • linux BASH shell下设置字体及背景颜色
    • shell脚本中echo显示内容带颜色的实现方法
    • linux shell的输出效果修改方法(界面颜色)
    上一篇:Linux下使用Rsync完成自动化备份
    下一篇:Linux中10个方便的Bash别名
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell日志颜色处理及清理系统日志的方法 shell,日志,颜色,处理,及,