简介

对于日志的分割删除我们一般会使用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

Shell: 定期存档日志文件的更多相关文章

  1. shell定期转移日志文件到云盘并定期删除云盘文件

    shell 脚本定期处理如下: cat /home/backup/logs_delete.sh #!/bin/bash /bin/find /data/logs/nginx/ -name " ...

  2. shell split分析日志文件

    在处理的文件comment有如下格式: ............................ xxx.xxx.10.59 db1059 mynbdpdatadb.idc4. dbname R620 ...

  3. shell脚本备份日志文件

    crontab -e crontab -l service crond restart 55 7 * * * /data/app/autoprice7/resin-pro-3.1.15/log_old ...

  4. 用shell脚本生成日志文件

    mdate=`date +%R-%d-%m-%Y` LogFile=/root/HDstatusLog.log echo disk is good! $mdate >> $LogFile ...

  5. sqlserver日志文件

    过程:   昨天下午数据库奔溃,表现就是连不上数据库了,重启服务之后好了. 查询日文文件 , “Autogrow of file 'XX_log' in database 'XX' was cance ...

  6. shell脚本 定期删除日志

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

  7. shell脚本切割tomcat的日志文件

    鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢 ...

  8. 【Shell实战】定期清理日志文件的shell脚本

    功能描述:清理/var/log/路径下的messages历史日志文件(messages-date),但不清理messages文件本身 依赖要求:服务器上安装了bc模块 # clean_logs.sh ...

  9. Shell执行将脚本里的变量打印到指定日志文件

    首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没 ...

随机推荐

  1. Javascript小白经典题型(一)

    1. 输出是什么? function sayHi() { console.log(name) console.log(age) var name = 'Lydia' let age = 21 } sa ...

  2. 为QLabel增加Clicked信号

    QT为QLabel添加Click事件(如果我们使用组件,我们关心的是信号槽:如果我们自定义组件,我们关心的是事件) 其实就是改写了一个函数:mouseReleaseEvent,当在QLabel放开鼠标 ...

  3. Map2Shp7专业版新增功能

    Map2Shp7专业版产品在上一版基础上,新增并优化了用户界面.转换对象.专业数据模型等相关功能.具体新增特性如下: 用户界面采用最新流行的Microsoft Office 2016 风格的界面(Ri ...

  4. Python爬虫入门教程 33-100 电影评论数据抓取 scrapy

    1. 海王评论数据爬取前分析 海王上映了,然后口碑炸了,对咱来说,多了一个可爬可分析的电影,美哉~ 摘录一个评论 零点场刚看完,温导的电影一直很不错,无论是速7,电锯惊魂还是招魂都很棒.打斗和音效方面 ...

  5. 牛客暑期ACM多校 第七场

    链接:https://www.nowcoder.com/acm/contest/145/C来源:牛客网 C .题目描述 A binary string s of length N = 2n is gi ...

  6. scrapy在存储数据到json文件中时,中文变成为\u开头的字符串的处理方法

    在settings.py文件中添加 FEED_EXPORT_ENCODING = 'utf-8'

  7. git 多人协同开发

    一.允许他人操作程序(两种方式) 1.添加合作者 2.创建组织 二.分支 每个开发者创建一个属于他们的dev分支 三.合并规则 1.一起合并(代码会出现冲突) 2.尽量缩短合并的周期

  8. Vue 编程式的导航

    1.应用场景 在同一路由的情况下,不同的参数之间进行切换 注意:别忘记初始化路由页面 2.用法 a.定义方法 b.实现方法 c.初始化路由页面 3.案例 <template> <di ...

  9. Django 连接mysql 踩过的坑

    1.创建数据库 2.在Django项目文件下的settings.py配置数据库 3.在Django项目__init__.py文件中,用pymysql代替MySqlDB import pymysql p ...

  10. Qt Installer Framework翻译(5-0)

    创建安装程序 创建离线和在线安装程序,需要执行以下步骤: 为可安装组件创建一个package文件夹.有关更多信息,请参见包文件夹章节. 在config文件夹中创建一个名为config.xml的配置文件 ...