一般线上服务的日志都是采用回滚的防止,写一定数量的日志

或是有管理工具定期去转移老旧日志

前几天删除一个测试环境的日志,只保留两天的日志,结果把正在写的日志都给删掉了,不得不重启了服务,经过这一次的错误,积攒了一些删除日志的经验

1、不同服务的日志更新速度是不同的,有的日志一秒就会写一个规定大小的文件,有的服务日志可能会一个月也写不满一个文件,或者根本就不写文件,所以在删除日志的时候要考虑不同服务文件时要弄清一下几点:系统显示的时间是什么时间(创建时间,修改时间,访问时间),更新速度,后缀名,删除正在写的日志,会不会重写

2、log目录子目录中是否也有日志文件,避免勿删调其他的脚本文件或是其他

#!/bin/bash
for log in `ls ./log`
do
case "$log" in
"log1")
#文件个数小于10个不删除
n=`ls -l ./log/$log |grep "^-"|wc -l`
if (($n<));then
echo -e "file count < 10 ,don't del\n"
else
echo -e "find flie \n"
find ./log/$log/ -maxdepth -mmin + -type f -exec basename {} \; > /root/filecount.txt
cat /root/filecount.txt
#要删除文件的个数
nn=`cat /root/filecount.txt|wc -l`
echo -e "fine count id $nn \n"
#保留文件的个数
((restfile=$n-$nn)) if (("$restfile" < ));then
#由新到旧排序
#ls -lt
echo -e "resrtfile count < 10 is $restfile \n"
#由旧到新排序
ls -tr ./log/$log |grep -E -e "*.log" -e "*.txt" > /root/filecount.txt
#保留最新的10个,其余的删除
echo -e "delfile filename is \n"
cat /root/filecount.txt
((delfile=$n-))
i=
for filename in `cat /root/filecount.txt`
do
if (($i==$delfile));then
echo -e "file counet is $delfile end del\n"
exit
else
echo "del file is the $i -- $filename "
rm -rf ./log/$log/$filename
fi
((i=$i+))
done
else
echo "restfile >10 del all find"
find ./log/$log/ -maxdepth -mmin + -type f -delete
fi
fi
;;
esac
done

shell 删除日志的更多相关文章

  1. shell脚本 定期删除日志

    定期删除日志: 然后建立清除日志文件的shell脚本,文件名为clean_log只保留最近三天的日志     #! /bin/bashlogdir=/var/log/httpdcd ${logdir} ...

  2. Linux——定时清空日志内容和删除日志文件

    前言 最近在做性能压测试,会生成大量的日志,导致后续越压越慢,最终磁盘空间占满之类的问题.老是要手动删除日志文件,为避免此类问题发生,编写一个Linux日志定时清理的脚本,一劳永逸. 1.shell脚 ...

  3. mysql 查看 删除 日志操作总结(包括单独和主从mysql)

    我们可以在mysql的安装目录下看到mysql的二进制日志文件,如mysql-bin.000***等,很多人都不及时的处理,导致整个硬盘被塞满也是有可能的.这些是数据库的操作日志.它记录了我们平时使用 ...

  4. SQL2005、2008、2000 清空删除日志

    SQL2005清空删除日志: 代码如下: Backup Log DNName with no_log  '这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了. go d ...

  5. MSSQL 清空日志 删除日志文件

    MSSQL 清空日志 删除日志文件 最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,照成新数据库的日志文件非常大:于是想把日志文件删除.最简单就是先分离数据库->删除日志文件-& ...

  6. (转)Linux下查看文件和文件夹大小 删除日志

    场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除 ...

  7. SQL2008清空删除日志:

    SQL2008清空删除日志: '在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式. USE [master] GO ALTER DATABASE DNName SET ...

  8. 基于Log4j完成定时创建和删除日志的方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 Log4j作为常用的日志生成工具,其清除日志的策略却十分有限. ...

  9. shell分析日志常用指令合集

    数据分析对于网站运营人员是个非常重要的技能,日志分析是其中的一个.日志分析可以用专门的工具进行分析,也可以用原生的shell脚本执行,下面就随ytkah看看shell分析日志常用指令有哪些吧.(log ...

随机推荐

  1. 清除目录下的SVN信息

    今天需要迁移一个版本库中的子目录到新的版本库中,以为不需要保留日志信息,所以只需拿最新的代码提交就可以. 对于清除目录下的SVN信息,在网上找一些方法,并实践执行了下: 在linux下 删除这些目录是 ...

  2. Winform 窗体的操作

    原文:http://www.cnblogs.com/Billy-rao/archive/2012/05/16/2503437.html 怎样能使winform窗体的大小固定住,不能调整其大小 窗体Fo ...

  3. OneAPM 技术公开课第二讲:开启性能为王的架构时代

    「OneAPM 技术公开课」由应用性能管理第一品牌 OneAPM 发起,内容面向 IT 开发和运维人员.云集技术牛人.知名架构师.实践专家共同探讨技术热点.继北京站第一场火爆上演之后,第二场将于9月1 ...

  4. 数组对象Vector用法

    import java.util.Vector; public class VectorTesting { public static void main(String[] args) { Vecto ...

  5. hdu 1233 还是畅通工程(最小生成树,基础)

    题目 //也是标准的最小生成树啊,我就改一点点,不重新再打一遍增加熟练度了 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #inclu ...

  6. POJ 1979 Red and Black(水题,递归)

    一开始理解错题意了,以为是走过的砖不能再重复走,最多能走多少个黑砖,结果写的递归陷入死循环...后来才明白原来可以重复走,问可以到达的磁砖数. #include <iostream> #i ...

  7. Asp.net MVC4.0自定义Html辅助方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  8. Tomcat启用Gzip压缩

    原理简介         HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并 浏览.相对于普通的 ...

  9. 【转】 wget 命令用法详解

    wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能和特点:(1)支持断点下传功能:这一点,也是网络蚂蚁和Fl ...

  10. Project Euler 97 :Large non-Mersenne prime 非梅森大素数

    Large non-Mersenne prime The first known prime found to exceed one million digits was discovered in ...