Linux系统定时任务

1、定时任务crond介绍linux


  1. crond是linux系统中用来按期执行命令或者指定程序任务的一种服务或者软件。shell

  2. crond默认状况下(每分钟),会检查系统中是否有须要执行的定时任务,若是有,就会根据事先定义好的规则来执行这个定时任务。就比如生活中的闹钟同样。可是注意的是crond对于秒级的任务(以秒为单位定时任务)是无能为力的,须要写守护进程(shell循环)脚本或者使用Quartz实现秒级任务。apache

  3. 在Linux中,周期执行的任务通常由cron这个守护进程来处理[ps -ef|grep cron]。cron的配置文件称为“crontab”,是“cron table”的简写。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。缓存

  4. service crond start    //启动服务
    service crond stop     //关闭服务
    service crond restart  //重启服务
    service crond reload   //从新载入配置
    service crond status   //查看服务状态 
    bash

2、linux定时任务分类:

ide

  1. 系统自身的按期执行的任务:如轮询系统日志、备份系统数据、清理系统缓存等,这些定时任务无需人为干预.系统任务调度的配置文件:/etc/crontab。工具

/etc/crontab配置基本格式 :    测试

SHELL=/bin/bash    #指定了系统要使用哪一个shell    spa

PATH=/sbin:/bin:/usr/sbin:/usr/bin    #指定了系统执行 命令的路径,命令行

MAILTO=root     #指定了crond的任务执行信息将经过电子邮件发送给root用户,若是MAILTO变量的值为空,则表示不发送任务 执行信息给用户,

HOME=/         #HOME变量指定了在执行命令或者脚本时使用的主目录

基本格式 : 
*  *  *  *  *  command 
分  时  日 月  周   命令 
第1列表示分钟0~59 每分钟用*

第2列表示小时0~23 每小时用*

第3列表示日期1~31 天天用*

第4列表示月份1~12 每个月用*

第5列标识号星期0~6(0表示星期天) 

第6列要运行的命令 


/n    :每隔n单位时间(分、时、月、周)

17-19 :表示一段范围

,    :表示不一样时间点


书写定时任务时要领:

一、增长定时任务调试频率。我的开发环境->办公室测试环境->IDC机房测试->IDC正式上线

二、经过脚本日志输出调试任务。

三、注意环境变量致使的定时任务故障(JAVA)。

四、经过定时任务服务日志调试任务。(var/log/cron)

五、系统任务里命令要用绝对路径。

六、脚本权限问题要加/bin/bash.

七、时间变量问题用\%转义,最好用脚本。

八、定时任务加注释

九、使用脚本程序代替命令行定时任务。

十、避免没必要要的程序命令输出。



例如: 

30 21 * * * /usr/local/etc/rc.d/lighttpd restart 

上面的例子表示每晚的21:30重启apache。

 

    二、用户执行的任务:某个系统管理员或用户按期要执行的任务。用户按期要执行的工做,如用户数据备份、定时邮件提醒等。用户可使用 crontab 工具来定制本身的计划任务。用户任务调度的配置文件: /var/spool/cron/文件名(其文件名与用户名一致,通常一个用户最多只有一个crontab文件)。

3、crontab命令详解


  1. 命令功能:经过crontab 命令,咱们能够在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位能够是分钟、小时、日、月、周及以上的任意组合。这个命令很是设合周期性的日志分析或数据备份等工做。

  2. 命令格式:    crontab   [-u user]  [file]                    crontab [-u user] [ -e | -l | -r ]

  3. 命令参数:

    -u user:用来设定某个用户的crontab服务,例如,“-u Tom”表示设定Tom用户的crontab服务,此参数通常有root用户来运行。

    -e:编辑某个用户的crontab文件内容。若是不指定用户,则表示编辑当前用户的crontab文件。

    -l:显示某个用户的crontab文件内容,若是不指定用户,则表示显示当前用户的crontab文件内容。

    -r:从/var/spool/cron目录中删除某个用户的crontab文件,若是不指定用户,则默认删除当前用户的crontab文件。

    -i:在删除用户的crontab文件时给确认提示。

相关文章
相关标签/搜索