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