Linux 定时任务
200 ? "200px" : this.width)!important;}
-->
介绍
本篇主要介绍Linux定时任务命令crontab的用法,crontab是定时任务的命令,而crond则是定时任务的启动服务。crontab的定时任务分为系统任务和用户任务,其实二者没有太大的区别。
安装
在centos中crond默认是安装好的,如果没有安装的话执行以下操作
安装crond
yum -y install vixie-cron
yum -y install crontabs 加入开启启动服务
chkconfig crond on
启动
在Centos中crond服务默认是自动启动的,如果没有启动可以手动启动,具体方法如下。
查看定时任务是否启动
service crond status 将定时任务加入系统自动启动服务
chkconfig crond on 启动定时任务服务
service crond start
系统任务调度
系统定时任务一般用来执行一些系统方面的操作,比如日志清理;系统的定时任务可以通过编辑/etc/crontab来设定。
SHELL:系统要使用哪个shell
PATH:系统定时任务执行的命令的路径,不要把这个PATH和系统环境变量认为是一样,二者没有关系,在系统环境变量里面配置的路径在这里不能生效。
MAILTO:用来接收邮件的用户,默认是root,邮箱的内容会保存在"/var/spool/mail/root"文件中。
HOME:系统定时任务的家目录。
* * * * root run-parts /etc/cron.hourly
用户任务调度
crontab命令选项
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
-e:创建和编辑定时任务,默认是创建和编辑当前用户的定时任务,只有root可以创建也编辑其它用户的定时任务。
-l:列出当前用户的定时任务,如果使用了-u参数指定了用户那么就是列出指定用户的定时任务。
-r:删除当前用户的定时任务,如果使用了-u参数指定了用户那么就是删除指定用户的定时任务。
-i:在删除用户命令前加以提示,-i参数不能单独使用需要结合-r参数以前使用。
两种调度方式的不同点:
系统定时任务是整个系统级别的定时任务,只有root用户可以创建,通过在/etc/crontab文件或者是在/etc/cron.d/目录中创建定时任务。
用户定时任务是每个用户都可以创建的定时任务,通过执行crontab -e进行创建,每个用户的定时任务保存在“/var/spool/cron”目录下每个用户自己的文件中。也可以通过“crontab -l”查看用户自己的定时任务
两种调度方式的相同点:
两种定时任务的创建都是永久的,服务器重启后也不会失效;每次创建任务不需要重启crond服务。
crontab任务格式
minute hour day month week command 顺序:分 时 日 月 周
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,如:“1,2,5,7,8,9”,如果是month则表示这几个月执行该命令。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“10-23/2”如果是指小时代表10点到23点每隔2个小时执行一次。例如*/1可以表示每隔一个小时执行一次。
其它限制:
/etc/cron.deny 该文件中所列用户不允许使用crontab命令 /etc/cron.allow 该文件中所列用户允许使用crontab命令 /var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名
注意:默认的用户的shell,path,mailto,home是没有定义的,可以单独定义用户的这几个变量否则可能会出现用户找不到一些用户软件的命令,具体的定义方法可以参考系统任务的定义,主要还是SHELL、PATH。默认的用户的这几个变量信息如下:
X-Cron-Env:<SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/chen>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=chen>
X-Cron-Env: <USER=chen>
例1:每天的1点到6点和13点到18点,每隔5分钟执行命令
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin
MAILTO=chen
HOME=/data/backup
*/5 01-06,13-18 * * * ./userbackup.sh test
上面定义了每天的1点到6点和13点到18点,每隔5分钟执行命令。
例2:每天9点到18点每隔2个小时执行一次
-/ * * * ./userbackup.sh test
注意:时间范围01-06是指01:00-06:59,命令后面可以使用“;”连接多个命令
总结
定时任务很实用,而且实用方法也很多,有兴趣可以慢慢研究。
|
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
Linux 定时任务的更多相关文章
- linux定时任务crond export变量问题
linux定时任务crond export变量问题 1)我写了一个重启resin的脚本,由于业务原因,需要定时在某一个时间重启下resin服务器,于是就在 crontab里配置了如下内容: 50 17 ...
- Linux 定时任务 Crontab命令 详解
前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...
- 如何让Linux定时任务crond以秒为单位执行(如每隔3秒)
需要用到Shell脚本每隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道秒,怎么办呢? 第一种方法: 当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如 ...
- 工作中linux定时任务的设置及相关配置
工作中会用到定时任务,来处理以前采集来的数据备份, 每周一凌晨4点执行一次 0 4 * * */1 find/data/templatecdr/oracle/dcndatabak/ -type ...
- 如何让linux定时任务crontab按秒执行
如何让linux定时任务crontab按秒执行? linux定时任务crontab最小执行时间单位为分钟如果想以秒为单位执行,应该如何设置呢?思路 正常情况是在crontab中直接定义要执行的任务,现 ...
- (转载)Linux定时任务cron配置
(转载)http://blog.csdn.net/jbgtwang/article/details/7995801 实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务 ...
- linux定时任务crontab的设置
linux定时任务crontab的设置http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html vi /etc/cronta ...
- Linux实战教学笔记11:linux定时任务
第十一节 linux定时任务 标签(空格分隔): Linux实战教学笔记 ---更多资料点我查看 1.1 定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种 ...
- linux定时任务访问url
这次linux定时任务设置成功,也算是自己学习linux中一个小小的里程碑.:) 撒花撒花--- 以下操作均是在ubuntu 下操作的,亲测有效,其他的linux系统还望亲们自己去查.鞠躬感谢! 1 ...
随机推荐
- [Git] 还原Git上commit,但是没有push代码
直接在Idea上操作2步解决: 1. 找到: 2. 在To Commit里面填写:HEAD^,表示将commit的信息还原为上一次的,需要多次直接reset多次即可: 使用命令行:原理一样 以下内容转 ...
- XACML学习
学习的网站: http://www.cinlk.com/2015/07/27/xacml/ http://www.cinlk.com/2015/08/22/swiftabac/ http://blog ...
- Beginning Scala study note(8) Scala Type System
1. Unified Type System Scala has a unified type system, enclosed by the type Any at the top of the h ...
- 【Java 新建项目】使用程序对新项目的各个实体 创建Dao、DaoImpl、Service、ServiceImpl层的文件
首先给出基本Dao层代码: GenericDao.java package com.agen.dao; import java.io.Serializable; import java.util.Co ...
- Java内存模型及性能优化
最近在做一个项目的性能优化,遇到好多以前没有关注过的性能问题,一头雾水,今天做个笔记,简单记录下JVM相关的参数设置. 一.JVM内存模型 首先介绍下Java程序具体执行的过程: Java源代码文件( ...
- CharacterEncodingFilter-Spring字符编码过滤器
通过源码可以看到在web.xml配置CharacterEncodingFilter 时,可以配置两个参数:encoding和forceEncoding : encoding:编码格式: forceEn ...
- java中注解的使用与实例 (二)
java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...
- iOS 常用第三方类库、完整APP示例
一.第三方类库 1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com ...
- 代码在ie9中不能正确执行
<!DOCTYPE html> <html> <head lang="zh"> <meta charset="UTF-8&quo ...
- 缺少.lib文件导致的Link2019 解决方案汇总
环境Vs2015, Win10 添加lib的方法在末尾 下面的错误都是我在写Direct3D程序中遇到的, 记下来方便查找 4.ws2_32.lib 3. version.lib _GetFil ...