📖Crontab配置定时任务处理日常工作

发布: 2015-07-24
热度: 47
趋势: 47
权重: 0
🎯

Linux服务器测试环境或正式生产环境常常设计一些定时例行处理的操作,如日记备份转移清理等,利用Crontab+Shell脚本组合实现定期定时操作,确保不会应工作繁忙忘记任务导致环境异常

需求描述

开发或测试环境一般会打开 DEBUG 调试模式,程序会产生大量的 DEBUG_LOG,一周时间(甚至更短)就能把环境磁盘塞满。

人为手动删除日志的话,环境过多(工作量大),任务繁忙(遗忘),给环境使用带来影响。

Linux 系统是否有与 Windows 类似的定时任务的程式呢?有的。

Crontab 实现自动任务就是在/etc/crontab 文件中按照规则配置自动任务,系统会按照配置进行任务调度。

其功能是在指定时间指定时间间隔调度命令或脚本或拉起程序。

命令配置语法格式

注意:Cron 表达式并非 Linux 系统独有,在很多高级语言中均有适配此类能力,其更像是一种标准或规范。

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

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

  1. *:所有数字组合(也可以认为不限制)
  2. /:每(一般*/5 表示每 5 个单位时间)
  3. -:范围数字组合
  4. ,:多条件组合

编写简单的执行脚本

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

#!/bin/bash
rm -rf /*/oracle/diag/rdbms/trace/*
rm -rf /*/oracle/diag/rdbms/alert/*

配置命令

Crontab 命令的配置是写在/etc/crontab 文件中

vi /etc/crontab

可以看到里面或许已存在一些已有任务。

Crontab 命令简单实例:

#以下实例基本涵盖了大部分使用场景
#早上6点执行清理
0 6 * * * sh /home/oracle/task/clear.sh 
#每8小时执行清理
0 */8 * * * sh /home/oracle/task/clear.sh
#晚11至早6点每两小时执行清理以及早六点执行清理
0 23-5/2,6 * * * sh /home/oracle/task/clear.sh
#周三/周日早六点执行清理
0 6 * * 3,0 sh /home/oracle/task/clear.sh 

生效方式

在**/etc/crontab**中正确配置保存后即可生效。

当前文章暂无讨论,留下脚印吧!
大纲
  • 需求描述
  • 命令配置语法格式
  • 编写简单的执行脚本
  • 配置命令
  • 生效方式
提交成功,请等待审核通过后全面展示!

发表评论

昵称
邮箱
链接
签名
评论

温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。

选择头像