6

Linux应该掌握的定时工具Cron

 11 months ago
source link: https://www.51cto.com/article/768685.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux应该掌握的定时工具Cron

作者:HChan 2023-10-06 22:43:53
Cron是Linux系统中非常强大和灵活的任务调度工具,可以根据您的需求安排执行各种任务。

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

a73d8f769c44bb72ba5961051b6ff63d48b765.jpg

下面是关于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人家

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK