`

非常好的介绍: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的具体使用及简单介绍。

分享到:
评论

相关推荐

    Linux中的定时任务管理:深入理解和使用cron

    cron是Linux系统中用于定时执行任务的守护进程,它允许用户在指定时间或周期性地执行脚本或命令。本文将详细介绍如何在Linux系统中使用cron来设置和管理定时任务,包括cron的工作原理、配置方法、实际应用以及一些...

    linux 计划任务cron--怎么定时执行的指令

    虽然Cron和At都可以用于定时执行任务,但它们之间存在一些关键差异: - **Cron**适用于周期性任务,如每天、每周或每月执行。 - **At**适用于一次性任务,指定具体时间点执行,适合于单次运行的需求。 总的来说,...

    掌握Linux时间的钥匙:Cron定时任务的终极指南

    Linux是一种开源的、基于Unix的操作系统内核,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。...7. **广泛的软件支持**:Linux拥有丰富的软件库,包括服务器软件、图形界面、办公软件、开发工具

    Linux定时执行程序Cronb.pdf

    【标题】: Linux定时执行程序Cron 【描述】: Linux系统中的Cron服务是一个强大的工具,允许用户设置定时任务,自动执行一系列命令或脚本,无需人工干预。Cron是Unix/Linux系统中的一个守护进程,用于执行预定的任务...

    linux下定时执行脚本

    在Linux系统中,定时执行脚本是一项非常常见的任务,它可以帮助我们自动化地完成日常的维护工作,例如数据备份、日志清理等。本篇将基于标题"Linux下定时执行脚本"来详细讲解如何在Linux环境下设置定时任务,并结合...

    Linux定时执行脚本学习笔记

    综上所述,学习Linux定时执行脚本,不仅可以提升系统运维效率,还能帮助我们更好地管理和保护关键数据。通过掌握`cron`、`anacron`的使用,编写和优化自动化脚本,以及理解如何进行数据库和日志备份,我们将能够构建...

    Linux操作系统定时任务系统Cron入门.docx

    Linux操作系统中的Cron定时任务系统是一个强大的自动化工具,它允许用户和系统管理员在特定时间自动执行各种任务,如数据备份、日志清理、系统维护等。Cron是Linux内建的服务,但不会自动启动,需要手动操作或设置...

    Linux操作系统定时任务系统 Cron 入门.pdf

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

    Linux Cron表达式解析

    总的来说,Linux的Cron表达式是强大的定时任务调度工具,配合`CalendarUtil.java`和`CronExpression.java`这样的工具类,可以方便地在Java环境中解析和利用Cron表达式实现自动化任务。通过学习和掌握Cron表达式,...

    Linux Cron 作业:定时任务管理的简单指南

    Cron 是一种强大的工具,允许用户设置定时执行的命令或脚本。通过使用 crontab -l 查看当前用户的 Cron 作业,crontab -e 编辑作业,用户可以方便地安排任务。Cron 作业的格式为五个时间字段,分别表示分钟、小时、...

    定时任务cron 解析为中文.docx

    其中,cron表达式是Unix/Linux系统以及许多其他支持cron的平台用来定义定时任务的一种强大工具。然而,由于其语法相对复杂,对于非开发人员来说,理解和解析cron表达式可能具有一定的挑战性。为了帮助团队成员更好地...

    linux 里定时执行删除日志

    在Linux系统中,定时执行任务是一项非常实用的功能,尤其对于自动化运维、系统监控以及资源管理等方面至关重要。本文将深入解析如何在Linux环境下设置定时任务来定期执行特定操作,特别是删除日志或无用文件,以释放...

    linux下定时执行php脚本

    综上所述,通过 Cron 守护进程,我们可以在 Linux 系统中轻松实现定时执行 PHP 脚本的功能,这对于自动化处理各种任务非常有用。同时,我们也了解了如何解决执行过程中可能遇到的一些常见问题。

    cron定时插件工具代码

    cron定时插件工具代码是一...总之,"cron定时插件工具代码"是一种高效管理定时任务的工具,对于需要自动化调度的项目来说非常实用。它可以帮助开发者轻松实现复杂的时间调度逻辑,提高工作效率,并保持系统的稳定运行。

    CRON定时任务生成工具

    CRON定时任务生成工具是一种在IT领域中广泛使用的开发辅助工具,主要功能是帮助开发者创建、管理和调度基于CRON表达式的定时任务。CRON(来自英语Cronos,希腊神话中的时间神)是一种在Unix/Linux系统中广泛采用的...

    linux下用cron定时执行任务的方法.docx

    Linux 下用 Cron 定时执行任务的方法 Linux 中的 Cron 任务调度器是一个强大的工具,允许用户在指定的时间或间隔执行程序。Cron 任务调度器使用 crontab 文件来存储任务的配置信息。下面是关于 Cron 任务调度器的...

    win Cron定时任务

    在Windows操作系统中,虽然默认没有内置像Linux系统中名为Cron的定时任务调度器,但可以通过其他方式实现类似的功能。Windows的任务计划程序(Task Scheduler)就是一种常用的替代方案,可以用来创建定期执行的任务...

    cron定时执行脚本包

    cron定时执行脚本是Linux系统中一种非常重要的自动化任务调度工具,它允许用户预先设定好时间,让系统在特定的时间点自动执行特定的命令或脚本。`crond`服务是cron后台守护进程的简称,它负责解析配置文件并按照预定...

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

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

Global site tag (gtag.js) - Google Analytics