假设我们的应用每天会产生一个日志文件,但我们并没有对日志文件做任何归档处理,久而久之日积月累,就会将磁盘空间占满,从而影响系统的正常运行。

分析磁盘空间占用情况

#当前磁盘空间占用情况

df -h

#当前目录文件大小列表

ll -lh

#文件列表按时间排序

ll -rt

#文件大小列表,按时间排序

ll -lhrt

#查询20天前的日志

find * -name 'server02.log007*' -mtime +20

#删除20天前的日志

find * -name 'server02.log007*' -mtime +20 -exec rm -rf {} \;

那么,如何定期清理过期的日志文件呢?

方法一:应用实现

方法二:shell脚本定期清理

应用实现的方式这里就不做过多的介绍,本文着重讲解下如何编写shell脚本定期清理日志文件。

步骤一:编写自动清理日志文件shell脚本

#!/bin/bash

log_path="/home/server/core/logs/app"

#目录存在,删除修改时间为7天前的文件

if [ -d "${log_path}" ]; then

echo start delete log 7 days ago...

find "${log_path}"/* -name '*.log.gz' -mtime +240 -exec rm -rf {} \;

echo end delete log ...

fi

# :wq! 保存并退出

步骤二:脚本文件授权(可执行权限)

# chmod +x logAutoClean.sh

测试一下:

# sh logAutoClean.sh

步骤三:创建crontab定时任务

# crontab –e

进入编辑页面(第一次进入会让你选择编辑器,这里我们选择3[vim.basic]就ok)。设置每天凌晨1点执行(假定清除脚本在目录/home/server/core/logs/app下),编辑crontab,增加如下行:

00 01 * * * /home/server/core/logs/app/logAutoClean.sh可先设置五分钟执行一次,测试下脚本

*/5 * * * * /home/server/core/logs/app/logAutoClean.sh如果定时任务不生效,重启下crond服务

# service crond restart //重启服务

附录:crontab用法说明crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。

每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。该crontab文件是通过crontab命令创建的

在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。

每个域之间使用空格或者制表符分隔。格式如下:

格 式: minute hour day-of-month month-of-year day-of-week commands

合法值: 00-59 00-23 01-31 01-12 0-6 (0 is sunday)

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

crontab 命令

-l 在标准输出上显示当前的crontab。

-r 删除当前的crontab文件。

-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。

shell 删除七日内日志_SHELL脚本定期删除日志文件(日志定期清理)相关推荐

  1. svn怎么执行清理命令_SHELL脚本定期删除日志文件(日志定期清理)

    假设我们的应用每天会产生一个日志文件,但我们并没有对日志文件做任何归档处理,久而久之日积月累,就会将磁盘空间占满,从而影响系统的正常运行. 分析磁盘空间占用情况 #当前磁盘空间占用情况 df -h # ...

  2. cat查看tomcat日志 linux_方法篇:tomcat日志切割和定期删除

    tomcat日志切割和定期删除 在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话).特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很 ...

  3. (需求实战_01)_shell脚本 ftp协议下载文件

    文章目录 一.需求文档说明 二.脚本解释/说明 三.脚本内容 3.1. 案例脚本 3.2. 案例脚本升级 一.需求文档说明 序号 要求 说明 ① 协议 使用ftp协议远程下载 ② 文件类型 .zip ...

  4. shell 删除七日内日志_shell日志删除(超容量自动)

    背景:避免双十一磁盘被打爆,本想通过crontab执行,但是删除需要密码,所以用作当机器磁盘高于摸个阈值,进行无关性日志强删 #!/bin/sh #use #sh clean.sh wmporder_ ...

  5. shell脚本 定期删除日志

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

  6. shell脚本删除冒号空格_shell脚本如何删除指定字符串,文档如下:

    展开全部 用正则匹配e68a8462616964757a686964616f31333361313338就可以了. shell脚本regex正则表达式 和 字符串替换 任意字符 ^行首匹配 $行尾匹配 ...

  7. shell不允许输入空字符_shell脚本编程之控制脚本

    点蓝色字关注"CurryCoder的程序人生" 微信公众号:CurryCoder的程序人生 欢迎关注我,一起学习,一起进步! 1.引言 目前为止,运行脚本的唯一方式是以实时模式在命 ...

  8. aix自动清理oracle日志,aix_设立定期删除oracle日志归档

    aix_设置定期删除oracle日志归档 系统环境 操作系统: AIX 5.3.0.0 数据库: 10.2.0 设置过程 设置定时器 1.       切换到超级用户(root),并创建oracle用 ...

  9. netapp脚本保存日志_Shell脚本实战:日志关键字监控+自动告警

    原文转载于:https://os.51cto.com/art/202004/613630.htm 主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人. ...

最新文章

  1. Mininet FAQ
  2. Element UI格式化日期
  3. 使用 Tye 辅助开发 k8s 应用竟如此简单(四)
  4. VS IIS Express 支持局域网访问
  5. mysql数据库查询笔记_MySql数据库基础笔记(一)
  6. IT项目管理工具探讨之_项目群管理
  7. 拉普拉斯算子属于卷积方法吗_2020 年 GNN 开卷有益与再谈图卷积
  8. 加权回归估计_比率估计与回归估计
  9. COM中关于使用DLL的一些知识点
  10. 一文详细理解计算机网络 - 物理层(考试和面试必备)
  11. 技术岗的职业规划_技术型员工职业生涯规划
  12. html网上日记本设计,个人博客的设计_网上日记本的开发ASP334
  13. C语言中文网学习进度
  14. 苹果app超级签名怎么弄
  15. 团组织关系的转接流程
  16. 从程序关闭Windows。
  17. ReactDOM.render(...) 渲染方法
  18. Skia深入分析8——Skia的GPU绘图
  19. 爬虫 — 爬取携程的航班信息
  20. PHP登录成功显示头像,实现WordPress评论框显示已登录用户头像

热门文章

  1. 程序员的时间管理-谷歌日历
  2. 普及一下域名注册知识
  3. 方法递归调用(重点)
  4. win10win7打开软件提示系统资源不足,无法完成请求服务的解决方法
  5. ISO/OSI参考模型
  6. 《Android开源库》Picasso
  7. A Winged Steed
  8. ubuntu 学习资料整理
  9. java句子单词颠倒_Java程序可反转句子中的每个单词
  10. eNSP华为模拟器使用——(9)eNSP桥接虚拟机VMware