`

非常好的介绍:Linux定时执行工具cron

 
阅读更多

Linux经过十多年的发展,很多用户都很了解Linux了,这里介绍一下Linux下cron的理解,和大家讨论讨论。cron是一个Linux 定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下Linux定时执行工具cron的具体使用及简单介绍。

新增调度任务
推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件),退出后重启crond进程,虽然官方文档描述为 “crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。”,但我曾经遇到不重启无法运行任务的情况(也许因为某些 系统crontab是读到内存中的,修改完/etc/crontab后并没有马上执行),可以使用如下方式重新启动cron服务或重新加载cron配置

  1. /etc/rc.d/init.d/crond restart
  2. service crond reload

同样,我们也可以直接修改/etc/crontab文件来新建任务,/etc/crontab文件内容默认如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=///使用者运行的路径,这时是根目录
# run -parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每周执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月执行/etc/cron.monthly内的脚本

注意:
"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某表脚本名,而不是文件夹的名了。
/etc/cron.hourly/ ,/etc/cron.dail/ 、cron.weekly/ 、cron.monthly/ 存放着系统预先制定的cron的任务
/etc /crontab文件语法如下:
MinuteHour Day Month Dayofweekcommand
分钟 小时天 月 天每星期命令
每个字段代表的含义如下:

Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里,除 了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。

同时,cron支持类似正则表达式的书写,支持如下几个特殊符号定义:
"*"代表取值范围内的数字,
"/"代表"每",
"-" 代表从某个数字到某个数字,
","分开几个离散的数字

举例如下:
5 * ***ls 指定每小时的第5分钟执行一次ls命令
305 ***ls 指定每天的 5:30 执行ls命令
307 8 **ls 指定每月8号的7:30分执行ls命令
50 7 * **rootrun-parts/etc/cron.daily 每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[注:run-parts参数表示,执行后面目录中的所有可执行文件,如果单独执行某个脚 本的话,是不需要增加run-parts参数的。]

服务管理
service crond start
service crond stop
service crond restart
service crond reload//启新载入配置

命令选项
-u 指定一个用户
-l 列出某个用户的任务
-r 删除某个用户的任务
-e 编辑某个用户的任务

如:
crontab -u //指定某个用户的cron服务
crontab -l //列出某个用户的cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务

任务分类
系统工作:系统周期性所要执行的工作,如备份系统数据、清理缓存,系统工作一般都定义在 /etc/crontab文件中
个人工作:某个用户定期要做的工作,如清理3天前的文件

cron用户限制
我们可以对不同用户设置限制,比如允许user1使用cron服务,而user2不允 许使用cron服务;可以通过编辑如下两个文件实现这个策略:
/etc/cron.deny 被记录在此的用户不能使用cron任务
/etc/cron.allow 被记录在此的用户可以使用cron任务
注意:如果两个文件都不存在,则默认所有用户均可以使用cron服务

其它:
/var/spool/cron/ 该目录下存放所有用户的cron服务
/var/log/cron 记录cron运行的日志信息。以上就是Linux定时执行工具cron的具体使用及简单介绍。

分享到:
评论

相关推荐

    cron -- windows 下的定时任务程序

    计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 ...cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业 此版本为windows下的应用。配置格式相同。

    crontab执行时间与系统时间不一致问题解决

    cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。  service crond start //启动服务  service crond stop //关闭服务  service crond restart //重启服务  service crond reload //...

    cron安装包

    crontab是linux操作系统定时任务执行工具,包含两个安装包 vixie-cron和crontabs

    Python实现定时关机小工具

    使用操作系统提供的定时任务功能(如Windows中的任务计划程序或Linux中的cron job)来设置关机任务。将计算得到的关机时间作为任务的执行时间。 关机操作: 在指定的关机时间到达时,执行关机操作。可以使用操作...

    Linux中使用crond工具创建定时任务的方法

    crond是一个linux下的定时执行工具(相当于windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务。crond工具提供crontab命令来设置定时任务,属于守护进程,只能精确到分钟,可以设定周期性执行...

    linux使用crontab实现PHP执行计划定时任务

    首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户...

    Linux操作系统用crontab做定时关闭启动tomcat

     用ssh工具连接到系统后,执行如下步骤:  1)crontab -l 查看定时;  2)crontab -e 此时表示已可以编辑定时任务,但还没进入编辑模式;  3)再次输入i,进入编辑模式;  4)把自己写的定时代码,...

    crontab命令 定时执行任务

    该命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要...

    C语言实现了crontab表达式执行时间

    实现思路详见:https://blog.csdn.net/qq_33901011/article/details/100155334 该工程用C语言实现了crontab表达式执行时间,与在线crontab执行时间计算在线工具结果一致,用在嵌入式行业里的设备定时唤醒,定时操作...

    Linux CentOS 定时运行脚本配置的方法

    很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如使用七牛的工具上传,如果同步文件里面有新增加一个文件,这个时候我们可以提供定时脚本去完成我们需要的同步命令(七牛的qrsbox工具是自动会同步的...

    linux crontab实例分析

    crontab -e * */1 * * * /home/lfzhou/vhost/vhost /sbin/service crond stop //关闭服务 /sbin/service crond start //启动服务 或 /sbin/service crond reload //重新载入配置 cron是一个linux下的定时执行工具,...

    Linux 命令?crontab: 任务调度

    cron 是一个 Linux 下的定时执行工具,可以在无需人工干预的情况下运行作业。守护进程 cron 会读取 crontab 文件,根据配置在指定的时间执行任务。  contab 命令用来添加、删除、显示 cron 任务表。  (Ubuntu ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。 immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。 ----------------------------------------------------...

    详解PHP执行定时任务的实现思路

    一、Linux服务器上使用CronTab定时执行php 我们先从相对比较复杂的服务器执行php谈起。服务器上安装了php,就可以执行php文件,无论是否安装了nginx或Apache这样的服务器环境软件。而Linux中,使用命令行,用CronTab...

    Crontab命令格式

    cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

    蓝鲸作业平台(Job)是一套运维基础操作管理系统具备海量任务并发处理能力.zip

    bk-job 提供了快速执行、任务编排、定时执行等核心服务,多重组合,满足企业不同场景的需求: - **快速执行**:提供临时性且多变的快速一次性操作入口,用完即走 - **任务编排**:对于重复性的操作组合,可以通过...

    Linuxcrontab 命令的使用

    contab(cron table) 命令被用管理用户的需要周期性执行的任务,与 Windows 下的计划任务类似,当安装完操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会检查是否有要执行的任务...

    cronner:Windows 任务计划程序的另一个类似 crontab 的替代品

    介绍 该项目是 Windows 任务计划程序的简单替代品。 它是纯 Python(除了sleep ),所以没有理由不能在 Linux 上使用它,但这没有多大意义。 基本原则是 cron 作业和设置存储在 JSON 文本文件中。 每次运行脚本时,...

    大数据“分布式调度框架”大集合.docx

    2.1cronsun crontab是Linux系统里面最简单易用的定时任务管理工具,在Linux上由crond来周期性的执行指令列表,执行的任务称为cron job,多个任务就称为crontab。crontab任务调度指令的基本格式为: * * * * * ...

Global site tag (gtag.js) - Google Analytics