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