> 软件包与系统管理 > crontab

crontab 命令完全指南:如何调度重复任务

`crontab`是一个用于在Linux/Unix系统中定期调度特定命令或脚本在指定时间执行的命令。它在自动化系统维护、备份、数据同步等重复性任务时起着非常重要的作用。

crontab 概述

crontab是'cron table'的缩写,它是一个包含用户调度任务的文件。该文件的每一行定义了一个任务(job),cron守护进程读取该文件并在指定时间执行任务。

crontab 字段结构

crontab 文件的每一行由6个字段组成。前5个字段定义了执行时间,最后一个字段定义了要执行的命令。

时间指定字段详细
字段 说明 范围
1 分钟(Minute) 0-59
2 小时(Hour) 0-23
3 日(Day of month) 1-31
4 月(Month) 1-12
5 星期(Day of week) 0-7 (0和7是星期天)
6 命令 要执行的命令或脚本

特殊字符

使用时间字段中的特殊字符,可以更加灵活地指定时间。

  • `*`: 每个时间 (例如:每分钟,每小时)
  • `,`: 指定多个值 (例如:`1,3,5` -> 1, 3, 5分钟)
  • `-`: 指定范围 (例如:`10-15` -> 从10分钟到15分钟)
  • `/`: 指定间隔 (例如:`*/10` -> 每10分钟)

主要选项

查看crontab命令的核心功能,即crontab文件管理选项。

1. crontab 文件管理

2. 用户管理

生成的命令:

请尝试组合命令。

描述:

`crontab` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

常用示例

学习如何使用crontab设置各种重复任务。

每天凌晨2:30执行备份脚本

crontab -e
30 2 * * * /home/user/backup.sh

设置每天凌晨2:30执行`/home/user/backup.sh`脚本。

每周一8点系统更新

crontab -e
0 8 * * 1 sudo apt update && sudo apt upgrade -y

每周一上午8点更新系统包。(Ubuntu/Debian为例)

每10分钟整理日志文件

crontab -e
*/10 * * * * echo '' > /var/log/app.log

每10分钟删除一次`/var/log/app.log`文件的内容。

在特定时间重启Web服务器

crontab -e
0 4 1 * * sudo systemctl restart nginx

每月1日凌晨4点重启Web服务器(nginx)。

每天早上6点到下午6点每小时执行任务

crontab -e
0 6-18 * * * /path/to/myscript.sh

从早上6点到下午6点每小时整点执行`myscript.sh`。

安装crontab(如有必要)

大多数Linux发行版默认安装,但在某些最小安装环境中,可能需要安装cron守护进程包。

Debian/Ubuntu

sudo apt update
sudo apt install cron

在基于Ubuntu或Debian的系统上安装cron守护进程。

CentOS/RHEL/Fedora

sudo yum install cronie
sudo systemctl enable crond
sudo systemctl start crond

在基于CentOS、RHEL或Fedora的系统上安装cron守护进程。


相关命令

功能上相似或经常一起使用的命令。


相同类别命令