首頁 > 套件與系統管理 > 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. 用户管理

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`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 守护程序。


相關命令

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


相同類別命令