简介

对于日志的分割删除我们一般会使用logratate,但对于项目较多的情况下,会让开发直接将日志分割写在代码里面,对于分割后过期的日志定期删除就很有必要,不然膨胀的日志会占满你的磁盘,将多余的日志删除或挪到其他地方就是这个脚本的功能,如果有用请拿去自做修改,不谢。

效果截图

需要处理日志目录

处理后存放日志文件目录

脚本内容dellog.sh

#!/bin/bash
# William Guozi
# https://www.cnblogs.com/William-Guozi, williamguozi.github.io
# You are free to modify and distribute this code,
# so long as you keep my name and URL in it. #指定本脚本日志文件
logfile=/data/scripts/dellog.log
#要处理的日志文件目录
logdir=$1 #函数体,对目录内所有文件进行遍历
foreachd(){
for file in $1/*
do
if [ -d $file ];
then
#输入遍历过程的日志
echo `date`: "$file is dir" >> $logfile
#如果是目录,调用该函数遍历
foreachd $file
#如果是文件,将符合条件的做相应处理
elif [ -f $file ];
then
#输入遍历过程的日志
echo `date`: "$file is file" >> $logfile
#取出文件名
baseName=`basename $file`
#取文件上级目录做日志类型区分
nameType=`echo $file | awk -F/ '{print $(NF-1)}'`
#将文件进行筛选,将修改时间为今天以前名字中还有.的文件移动到/logs下,并重命名
find $file -mtime +0 -name "*.*" | xargs -I {} mv {} /logs/$baseName.$nameType
fi
done
} #判断参数是否为空,为空,显示帮助,不为空则调用函数
if [[ "x$logdir" == 'x' ]];
then
echo "Useage: bash dellog.sh dir. eg: bash dellog.sh /data/logs"
else
foreachd "$logdir"
fi

定时任务crontab

crontab -l

#delete log file

HOME=/data/scripts/

00 1 * * * /bin/bash /data/scripts/dellog.sh /data/logs

参考

https://blog.csdn.net/neil4/article/details/68945642

最新文章

  1. 札记:Java异常处理
  2. 架构师养成记--6.单例和多线程、ThreadLocal
  3. 介绍两个挺好用的基于Jquery的上传工具
  4. MINA2 框架详解(转)
  5. Request与session与application的区别
  6. PHP面向对象07_PDO
  7. 【JAVA多线程安全问题解析】
  8. 188. Best Time to Buy and Sell Stock IV
  9. 设计模式之Facade模式
  10. mysql错误-更改mysql.sock位置
  11. 【OpenMesh】Some basic operations: Flipping and collapsing edges
  12. C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
  13. 利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl
  14. 机器学习之十一问支持向量机(SVM)
  15. FUTABA 13-ST-84GINK + DS3231 时钟
  16. mysql 行转列 列转行
  17. 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组
  18. day23 模块引入的一些说明
  19. Memcache及telnent命令具体解释
  20. NSLog()输出函数集格式字符

热门文章

  1. 基于GMC/umat的复合材料宏细观渐近损伤分析(一)
  2. linux入门系列4--vi/vim编辑器
  3. Theia APIs——事件
  4. ArcEngine版本管理(Version)项目总结
  5. vue中动态设置echarts画布大小
  6. 原生js中call、apply、bind的区别和相同点
  7. CDH安装详细测试正确
  8. Replacing the deprecated Java JPEG classes for Java 7
  9. Vue 组件 传值
  10. 7.Arrays数组的工具类