linux十分钟调度一次,linux系统中的调度周期任务:cron

linux系统中的调度周期任务:cron

主要概念

cron工具用来调度经常重复的任务

crontab命令是编辑crontab文件的一个前端程序

crontab文件使用5个字段来规定计时信息

cron作业中的标准输出会作为邮件寄给用户

执行周期任务

人们经常发现自己会定期执行一些任务.在系统管理中,这些任务包括从/tmp目录下删除旧的,不使用的文件,或者经常

检查记录登录信息的文件以确保其不会变得过大.其他用户可能会有自己的任务,如检查不再使用的大型文件,或者查看

网站上是否公布了新的信息.

cron工具允许用户配置要定期运行的命令,如每隔十分钟,每周四一次,或每月两次.用户用crontab命令配置自己的任务

计划(cron table),指定何种命令在何时运行.这些任务由传统的linux(和unix)守护进程,即crond守护进程管理.

cron服务

crond守护进程是代表系统或个人用户执行周期任务的守护进程.通常这个守护进程随着系统的启动而启动,因此大多数

用户都不会注意到.通过列出所有进程且搜索crond,你可以确定crond守护进程有没有在运行.

[root@sidatabase /]# ps aux | grep crond

root 3204 0.0 0.0 117204 1368 ? Ss Aug09 0:11 crond

root 4687 0.0 0.0 103244 872 pts/0 S+ 14:52 0:00 grep crond

如果crond守护进程没有在运行,系统管理员需要以根用户身份来启动crond守护进程.

crontab语法

用户通过配置一个称为”cron table”(经常缩写成”crontab”)的文件指定要运行哪些作业以及何时运行.下面列出了一个

crontab文件的例子.

30 23 * * 6 su - sybx -c "/sydata/app/db/bin/rman target / msglog=/sybak/bak0.log cmdfile=/sybak/sybx_rman_script/bak0"

30 23 * * 0,1,2,3,4,5 su - sybx -c "/sydata/app/db/bin/rman target / msglog=/sybak/bak1.log cmdfile=/sybak/sybx_rman_script/bak1"

30 2 * * 0,1,2,3,4,5,6 su - sybx -c "/sydata/app/db/bin/rman target / msglog=/sybak/bakarch.log cmdfile=/sybak/sybx_rman_script/bakarch"

30 3 * * 0,1,2,3,4,5,6 su - sybx -c "/sydata/app/db/bin/rman target / msglog=/sybak/delbackup.log cmdfile=/sybak/sybx_rman_script/delbackup"

crontab文件是一个以行为运行单位的配置文件,每行执行三种功能中的一种:

注释

首字符(非空格)是一个#的行被认为是注释,可忽略.

环境变量

具有name=value格式的所有行被用来定义环境变量

cron命令

其他的任何(非空)行被认为是cron命令,由下面描述的六个字段组成.

cron命令行包括六个用空白分隔的字段.前五个字段用来指定何时运行命令,剩余的第六个字段(包括所有在第五个字

段后的部分)指定要运行的命令.前五个字段指定下列时间信息:

minute hour day of month month(1=January,....) day of week (0=Sunday,....) command to run

25 04 1 * * echo "HI"

前五种字段的每一种都必须含有一个使用下列语法的标记

crontab时间表示语法标记

标记 含义 例子 解释(如果用在第一个字段中)

* 每次 * 每分钟

n 在指定时间 10 在每小时过10分时

n,n,… 在任何指定时间 22,52 在每小时过22分和每小时过52分时

*/n 每隔n次 */15 每隔15分钟(在每个整点,一刻钟,半点,或差一刻整点时)

使用crontab命令

用户很少直接管理自己的crontab文件(甚至不知道crontab文件被保存在哪里),而是使用crontab命令来编辑,列出或者

删除它.

crontab {[-e] | [-l] | [-r]}

crontab file

编辑,列出或删除当胶crontab文件,或者用file取代当前crontab文件.crontab命令行选项释义如下

crontab命令行选项

选项 作用

-e 编辑当前文件

-l 列出当前文件

-r 删除当前文件

直接编辑crontab文件

用户经常用crontab -e 直接编辑自己的crontab文件.crontab命令将把当前crontab配置打开到用户默认的编辑器中.

当用户编辑完文件并退出编辑器时,修改过的文件内容作为新的crontab配置被添加.

默认的编辑器是/bin/vi,然而crontab像其他许多命令一样,检查editor环境变量.如果变理已经被设置,它将会被用来

替代默认编辑器.

环境变量与cron

配置cron作业时,用户应该知道一个微妙的细节.当crond守护进程启动用户命令时,它没有从shell中运行命令,而是

直接对这个命令派生和执行(fork和exec).这有一个重要的含义:启动时被shell配置的任何环境变量或别名(alias),

例如在/etc/profile或.bash_profile中被定义的任何环境变量,不会在cron执行命令时出现.

如果用户想定义一个环境变量,需要在自己的crontab配置中定义该变量.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值