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

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

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

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. PHP读取xml之cdata讲解

    实例: xss.xml <?xml version="1.0" encoding="UTF-8"?><filters>    <f ...

  2. requireJS源码流程分析

  3. Mutex vs Semaphore

    What are the differences between Mutex vs Semaphore? When to use mutex and when to use semaphore? Co ...

  4. Silverlight弹出层(转载)

    ChildWindow为Silverlight中的弹出子窗口 可以在项目新建子窗口文件: 相互传值: //父窗体向子窗体传值,需要在ChildWindow中构造函数进行传值ChildWindowTes ...

  5. ubuntu12.10+NDK r9 编译 ffmpeg 的一些参考资料Perhaps you should add the directory containing `libssl.pc'

    首先入门级的 编译宝典: https://trac.ffmpeg.org/wiki/CompilationGuide/Android http://www.roman10.net/how-to-bui ...

  6. Ubuntu 启动栏添加eclipse图标

    sudo gedit /usr/share/applications/eclipse.desktop [Desktop Entry] Name=Eclipse Comment=c project ma ...

  7. python各种类型转换-int,str,char,float,ord,hex,oct等

    int(x [,base ])         将x转换为一个整数  long(x [,base ])        将x转换为一个长整数  float(x )               将x转换到 ...

  8. 修改Eclipse字体

    选择菜单:Windows->Preferences->Genneral->Appearance->Colors and Font

  9. [置顶] android 与JavaScript的互相调用

    1.html代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> ...

  10. 从输入 URL 到页面加载完的过程中都发生了什么---优化

    这篇文章是转载自:安度博客,http://www.itbbu.com/1490.html 在很多地方看到,感觉不错,理清了自己之前的一些思路,特转过来留作记录. 一个HTTP请求的过程 为了简化我们先 ...