Linux系统Crontab配置定时任务进行日常维护

with 1 comment

绝大多数JAVA商业网络应用都会部署在Linux环境上,特别对于开发人员的测试环境一般都是打开Debug的,日志不及时清理很容易造成环境阻塞,Crontab配置定时任务就变得非常实用

使用背景

开发环境、自动化环境、测试环境、调测环境等所有打开Debug调试模式的工厂环境
由于打开Debug模式后,网络应用会产生大量的DEBUG_LOG(调测日志)
这些日志是非常占用服务器存储空间的
即使是商用环境中当用户量过多的时候,操作日志也会占用很多空间
适时的清理日志机制就变得很重要,因为比较久远的运行/操作日志将不具备分析意义
人为手工操作日志清理会存在以下问题

因此这种时候,采用Crontab定时任务会变得非常实用

Crontab命令

Crontab命令的功能是在指定时间间隔调度一些命令的执行
crontab命令格式非常简单:

minute hour day-of-month month-of-year day-of-week commands
#分钟(0-59)小时(0-23)日(01-31)月(01-12)周(0-6)执行命令

参数除了填写数字还可以写特殊符号:

所有Contab命令都是存放在/etc/crontab文件中的
只需要在文件中添加命令即可

Crontab命令实例

比如清理Oracle垃圾数据
先写一个清理的脚本clear.sh

#!/bin/bash
#此处是简单实例
#您可以指定删除多少天之前的日志
rm -rf /*/oracle/diag/rdbms/trace/*
rm -rf /*/oracle/diag/rdbms/alert/*
#还可以输出一些操作的日志,便于自己检查

将定时任务配置在/etc/crontab文件中

vi /etc/crontab

可以看到里面或许已存在一些已有任务
新建命令实例如下:

#每天早上6点执行清理
0 6 * * * sh clear.sh 
#每8小时执行一次清理
0 */8 * * * sh clear.sh 
#每晚晚11至早6点每两小时执行一次清理以及早六点执行清理
0 23-5/2,6 * * * sh clear.sh 
#每周三/周日的早六点执行清理
0 6 * * 3,0 sh clear.sh 

更多组合就不一一赘述
自由发挥你的定制诉求吧

Responses
  1. 学习了

    Reply