shell 删除日志
一般线上服务的日志都是采用回滚的防止,写一定数量的日志
或是有管理工具定期去转移老旧日志
前几天删除一个测试环境的日志,只保留两天的日志,结果把正在写的日志都给删掉了,不得不重启了服务,经过这一次的错误,积攒了一些删除日志的经验
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 删除日志的更多相关文章
- shell脚本 定期删除日志
定期删除日志: 然后建立清除日志文件的shell脚本,文件名为clean_log只保留最近三天的日志 #! /bin/bashlogdir=/var/log/httpdcd ${logdir} ...
- Linux——定时清空日志内容和删除日志文件
前言 最近在做性能压测试,会生成大量的日志,导致后续越压越慢,最终磁盘空间占满之类的问题.老是要手动删除日志文件,为避免此类问题发生,编写一个Linux日志定时清理的脚本,一劳永逸. 1.shell脚 ...
- mysql 查看 删除 日志操作总结(包括单独和主从mysql)
我们可以在mysql的安装目录下看到mysql的二进制日志文件,如mysql-bin.000***等,很多人都不及时的处理,导致整个硬盘被塞满也是有可能的.这些是数据库的操作日志.它记录了我们平时使用 ...
- SQL2005、2008、2000 清空删除日志
SQL2005清空删除日志: 代码如下: Backup Log DNName with no_log '这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了. go d ...
- MSSQL 清空日志 删除日志文件
MSSQL 清空日志 删除日志文件 最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,照成新数据库的日志文件非常大:于是想把日志文件删除.最简单就是先分离数据库->删除日志文件-& ...
- (转)Linux下查看文件和文件夹大小 删除日志
场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除 ...
- SQL2008清空删除日志:
SQL2008清空删除日志: '在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式. USE [master] GO ALTER DATABASE DNName SET ...
- 基于Log4j完成定时创建和删除日志的方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 Log4j作为常用的日志生成工具,其清除日志的策略却十分有限. ...
- shell分析日志常用指令合集
数据分析对于网站运营人员是个非常重要的技能,日志分析是其中的一个.日志分析可以用专门的工具进行分析,也可以用原生的shell脚本执行,下面就随ytkah看看shell分析日志常用指令有哪些吧.(log ...
随机推荐
- xargs 加 gm批量转换图片
%x50% @ ../-\ 南澳西涌_50%/@ 看了很多说明上都在用-i,这是一个已经废弃了的参数
- android.os.DeadObjectException memory near r0: 异常处理 Consumer closed input channel or an error occurred. events=0x9
原地址:http://www.cnblogs.com/wanqieddy/p/3495338.html android.os.DeadObjectException memory near r0: 异 ...
- running android lint has encountered a problem
最近写学习android编程的的时候,每次保存.java文件的时候,总会跳出如下错误 解决:
- android2.3 -添加自定义按键:作唤醒功能 .
最近需要做个唤醒功能,当按键的时候android系统唤醒并点亮屏,在长按键中,系统不能在进入睡眠. 驱动方面: 1:在平台设备文件中添加 一个按键,定义为唤醒源! \arch\arm\mach-s5p ...
- Palindrome Partitioning II
Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...
- ZOJ 2724 Windows Message Queue (优先级队列,水题,自己动手写了个最小堆)
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm& ...
- 核稀疏表示分类(KSRC)
参考:<Kernel SparseRepresention-Based Classifier> 原文地址:http://www.cnblogs.com/Rosanna/p/3372153. ...
- struts2学习笔记(3)——struts2的局部类型转换
今天又学到了一个新的东西,就是struts2的类型转换. 为什么要类型转换? 今天我就要传一个点的坐标给你,保存时用一个自定义的Point类来保存. 因为在表单里面传过去的是字符串,如“12,23”, ...
- React-用Jest测试
一. 1.目录结构 二.代码 1.CheckboxWithLabel.jsx var React = require('react/addons'); var CheckboxWithLabel = ...
- 排序 归并排序&逆序对
void MergeArray(int cry[],int temp[],int begin,int middle,int end) { int i=begin; int j=middle+1; in ...