一、背景

老板:小白,刚才咱们的机器告警磁盘空间不足了,你去定位一下原因。

我:(......空间不足碍我屁事儿)好的,马上定位


我:老板,太多N天前的日志文件占用了太多空间。

老板:你感觉你保留着这些日志,我会给你晋升涨薪嘛?

我:应该不会吧(如果会的话,那就太好了)

老板:(发怒)你知道不会,还不赶快去清理一下日志文件。

(说完便扬长而去,留下在风中凌乱的我)


二、解决方案

有些问题你感觉是送分题,往往这却是一道送命题

rm -rf unused.log 纵然粗暴,但是你仍可以将它玩出细腻的花样。

问:那怎么才能玩的细腻呢?

答:crontab。

什么你还不知道crontab?

答:那还不快去google一下。

三、Crontab介绍

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

3.1 命令格式

本文不是详细介绍crontab,如想详细了解,还请自行google。

crontab [-u user] [ -e | -l | -r ]

  • -u user:用来设定某个用户的crontab服务

  • -e:编辑crontab文件

  • -l:显示crontab文件内容

  • -r:删除crontab文件

3.2 文件格式

分 时 日 月 星期 要运行的命令

四、实践

4.1 创建删除日志的shell文件

首先我们先创建删除日志的shell文件,这样cron任务要运行的命令就是

sh myshell.sh。

我的任务是删除7天前创建的日志文件,所以shell文件delLog.sh定义如下:

# !/usr/binfind /logs/ -name '*.log' -mtime +7 -exec rm -rf {} \;
4.2 创建并编辑

使用crontab -e,存在任务则直接编辑,不存在则创建之后再编辑。编辑内容如下:

0 5 * * 1 sh delLog.sh

0 5 * * 1:表示每周一的凌晨5点执行

五、遇到的问题总结

问题1:配置了定时任务,但是没有生效

最终通过该文章得到了解决:crontab 在mac上不执行问题研究

问题2:我想删除文件夹怎么办

因为上面是使用find命令找到并删除,所以使用参数-type d即可。例如: 想删除7天前创建且名为log的文件夹。

# !/usr/binfind /logs/ -name 'log' -type d -mtime +7 -exec rm -rf {} \;

六、工具

最后给大家推荐一下自己用到的相关工具:

  1. crontab-generator:该网站可以通过页面配置生成相应的表达式

  2. 在线工具:该网站可以验证crontab表达式的准确性,区分不同语言(linux、java)

来源:https://juejin.im/post/5e660de3518825496f38321e

☆ END ☆

crontab 日志_聊聊老板让我删除日志文件那些事儿相关推荐

  1. mysql 删除过期日志_【转】对mysql日志进行操作的总结包括 启用,过期自动删除 等...

    近段时间一直在研究mysql的日志系统,在网上看了N多mysql日志操作的文章,但都过于零乱,为了让自己以后不再搞忘,特作出以下总结: 1. 以前我错误的认为mysql的日志可以恢复到任何时间的状态, ...

  2. java 打开gc日志_在运行时打开GC日志记录

    java 打开gc日志 总是有下一个JVM表现不佳. 而且,您内心深知,如果您只有少数启动选项可以公开一些有关正在发生的事情的信息,那么您可能就有机会真正修复该死的东西. 但是不,您需要的标志( -X ...

  3. oracle 删除补全日志组_Oracle 10g 添加、删除日志组

    做日常巡检的时候发现alert日志中有这个错误 Thread 1 cannot allocate new log, sequence 319708 Checkpoint not complete 这个 ...

  4. ios 打印 详细错误日志_关于Xcode不能打印崩溃日志

    最近在调试应用的时候发现了一个问题, 就是Xcode的控制台不打印Crash日志. 几经周折终于发现了问题. 因为不能打印日志, 开始以为是我没有设置 NSSetUncaughtExceptionHa ...

  5. 记录程序写入日志_终于有人把MySQL 三大日志讲清楚了

    点击上方"蓝字",关注了解更多 日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日 ...

  6. recuva文件恢复乱码_使用Recuva恢复意外删除的文件

    recuva文件恢复乱码 It can be the worst feeling in the world when you accidentally delete a very important ...

  7. 交换机日志删除_锐捷交换机如何删除日志

    2014-11-20 回答 标准acl配置 提问:如何只允许端口下的用户只能访问特定的服务器网段? 回答: 步骤一:定义acl s5750#conf t ----进入全局配置模式 s5750(conf ...

  8. mysql数据库执行事务日志_第十章 MySQL事务及其日志介绍

    一.数据库升级 #1.提出方案 1)升级的方法 2)升级的步骤 3)升级的时间 4)升级步骤可能会出现的问题 5)出现的问题怎么解决,解决时间 6)升级后出现的问题 #2.搭建新的数据库 #3.备份就 ...

  9. 5显示日志_如何在 Linux 中管理日志 | Linux 中国

    Linux 系统上的日志文件包含了很多信息--比你有时间查看的还要多.以下是一些建议,告诉你如何正确的使用它们--而不是淹没在其中.-- Sandra Henry-stocker Linux 系统上的 ...

最新文章

  1. Shell脚本编写与应用
  2. Java学习_day004:Scanner与分支结构
  3. vs2013编译osg缺少mfc120d.lib
  4. Python3标准库:asyncio异步I/O、事件循环和并发工具
  5. KDD Cup2020 正式开赛,天池诚邀各路豪杰来挑战!!
  6. 学习笔记(1):uni-app实战社区交友类app开发-引入自定义图标库
  7. 深度linux怎么运行windos软件,(转自深度技术)让Ubuntu也能运行Windows程序-Wine的安装与使用...
  8. 怎么在计算机上设置复印机双面打印,Word如何设置双面打印
  9. Spring源码下载及构建技巧
  10. 图片放大后变模糊了怎么办?
  11. OpenCV_15绘制朱利亚(Julia)集合图形
  12. 【图像处理】PS曲线工具matlab实现 交互自定义灰度映射(Gray Level Transformation)附代码链接
  13. python汇率转换_python汇率兑换
  14. 软考真题答案-2021年11月系统集成项目管理工程师上午题(二)
  15. 在顺丰的历史上,扩大规模的资金来源
  16. JS鼠标放上移开 显示隐藏图标 的代码思路
  17. 网络图片缩略图查看工具
  18. 案例直播 | Pulsar Summit Asia 2022:Day 1 - 分论坛 1:腾讯、华为、有道、vivo、科大讯飞...
  19. 3行代码用python实现图片格式转换
  20. 51单片机74ls273并行输出地址c语言程序,跑马灯/输入输出接口(片选地址74LS273)...

热门文章

  1. java 中batch_java相关:Mybatis中使用updateBatch进行批量更新
  2. 电脑硬件检测_【学无止境】电脑硬件维修测试学习资料(附送各类PC检修资源)...
  3. Spark Master的注册机制与状态管理
  4. 奇数阶幻方 java_N(奇数)阶幻方-java实现代码
  5. 编译html成qch,在应用程序编译过程中运行qcollectiongenerator
  6. redis和mysql数据不一致_高并发下为什么 redis 和数据库不一致?怎么解决?
  7. 天天说常识推理,究竟常识是什么?
  8. Spring boot中使用log4j记录日志
  9. 论文浅尝 | 直译优于翻译?混合语言的知识库问答方法研究
  10. 连载 | 知识图谱发展报告 2018 -- 前言