Linux应该掌握的定时工具Cron

系统 Linux
Cron是Linux系统中非常强大和灵活的任务调度工具,可以根据您的需求安排执行各种任务。

cron 是Linux和Unix系统上的一个定时任务调度工具,用于按照预定的时间表执行命令、脚本和任务。cron 允许您自动化重复性的工作,例如备份、日志清理、系统监控等。

下面是关于cron的详细介绍:

1.cron和crontab

  • cron 是Linux系统上的守护进程,负责执行预定的任务。
  • crontab 是用户或管理员用来管理自己的定时任务的工具。每个用户都可以有一个自己的crontab文件。

2.cron表达式

cron使用一个称为cron表达式的特定格式来指定任务的执行时间。

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

该表达式由五个字段组成,分别表示分钟、小时、日期、月份和星期。字段之间用空格或制表符分隔。例如,0 2 * * *表示在每天的凌晨2点执行任务。

3.crontab命令

使用crontab命令可以编辑、查看和管理crontab文件。

常用的crontab命令选项包括:

  • -e:编辑当前用户的crontab文件
  • -l:列出当前用户的crontab内容
  • -r:删除当前用户的crontab文件

4.cron表达式示例

  • :通配符,表示任意值。例如,
  • 5 * * * *:每小时的第5分钟执行
  • 0 2 * * *:每天的凌晨2点执行
  • 0 0 * * 1:每周一的凌晨0点执行
  • 0 0 1 * *:每个月的第一天的凌晨0点执行

5.特殊字符

  • @reboot:在系统启动时执行一次任务 @yearly 或 @annually:每年一次,等同于 0 0 1 1 *
  • @monthly:每月一次,等同于 0 0 1 * *
  • @weekly:每周一次,等同于 0 0 * * 0
  • @daily 或 @midnight:每天一次,等同于 0 0 * * *
  • @hourly:每小时一次,等同于 0 * * * *。

6.日志和输出

cron任务的标准输出和标准错误通常会通过邮件发送给任务的所有者。可以使用>>将输出重定向到文件,以便进行记录和调试。

7.安全性

注意要确保只有授权的用户可以编辑crontab文件,以防止恶意任务的执行。

8.系统cron和用户crontab

  • 系统级别的cron任务存储在/etc/cron.d/和/etc/cron.daily/等目录中。
  • 用户级别的crontab文件通常存储在/var/spool/cron/crontabs/目录下,以用户名命名。

总结

cron是Linux系统中非常强大和灵活的任务调度工具,可以根据您的需求安排执行各种任务。通过了解cron表达式和crontab命令,您可以轻松自动化系统管理和其他定期任务。

责任编辑:赵宁宁 来源: IT人家
相关推荐

2010-01-07 13:24:22

Linux定时执行工具

2010-01-07 13:38:41

Linux定时任务

2021-08-03 14:33:53

cron定时器Linux命令

2021-04-27 15:28:32

程序员技能开发者

2022-11-11 14:55:14

Linuxcron

2022-08-15 15:43:29

Linuxcron

2018-10-08 14:00:28

LinuxCron定时任务

2019-11-01 10:30:37

Reac测试工具开源

2022-08-13 12:28:11

MySQL性能调优Explain

2021-04-18 12:12:29

systemd定时器系统运维

2022-02-18 07:32:13

Linux项目代码

2022-06-07 07:43:44

HealthchecCronPython

2023-10-12 13:07:29

2023-10-14 18:18:59

Spring

2019-08-21 10:15:41

开发Redis数据

2012-08-09 10:27:59

Web

2010-06-28 14:52:30

cron进程

2009-08-03 11:54:34

linux at命令linux at命令详cron

2009-06-19 14:38:20

Java程序员

2017-09-11 15:46:36

数据科学语言Java
点赞
收藏

51CTO技术栈公众号