From a7555330e5f7aa9ab65412b54ccb9b7a75992ac3 Mon Sep 17 00:00:00 2001 From: unknown <2112572495@qq.com> Date: Tue, 18 Jun 2024 20:49:45 +0800 Subject: [PATCH] 18 --- .../20240617 \345\221\250\346\234\237.md" | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 "\351\203\255\346\202\246\350\277\216/20240617 \345\221\250\346\234\237.md" diff --git "a/\351\203\255\346\202\246\350\277\216/20240617 \345\221\250\346\234\237.md" "b/\351\203\255\346\202\246\350\277\216/20240617 \345\221\250\346\234\237.md" new file mode 100644 index 0000000..e7bab84 --- /dev/null +++ "b/\351\203\255\346\202\246\350\277\216/20240617 \345\221\250\346\234\237.md" @@ -0,0 +1,143 @@ +## Cron的配置文件 + +在Debian系统中,Cron任务的配置文件通常分为以下几类: + +1. **用户级Cron任务**:每个用户都有自己的Cron任务配置文件,位于`/var/spool/cron/crontabs/username`。 + +2. **系统级Cron任务**:系统级的Cron任务配置文件位于`/etc/crontab`和`/etc/cron.d/`目录下。 + +3. 周期性任务目录 + + :这些目录包含在特定时间间隔运行的脚本,例如: + + - `/etc/cron.hourly/` + - `/etc/cron.daily/` + - `/etc/cron.weekly/` + - `/etc/cron.monthly/` + +## 3. 编辑Cron任务 + +### 3.1 使用`crontab`命令 + +用户可以使用`crontab`命令来编辑、查看或删除自己的Cron任务【用户级】。 + +cron table 时间周期表,计划任务表 + +- **编辑Cron任务**: + + ``` + crontab -e # edit + ``` + + 这将打开用户的Cron配置文件进行编辑。 + +- **查看Cron任务**: + + ``` + crontab -l # list + ``` + + 这将列出用户当前的Cron任务。 + +- **删除Cron任务**: + + ``` + crontab -r # remove + ``` + + 这将删除用户的所有Cron任务。 + + ### 3.4 特殊符号 + + **常用的如下:** + + 1. **星号(`\*`)** + + - **含义**:匹配任何值,,即每一。 + - **示例**:在分钟字段中使用 `*` 表示每一分钟都运行一次任务。 + + ``` + * * * * * /path/to/command + ``` + + 2. **逗号(`,`)** + + - **含义**:指定一个列表值,列出所有指定值 a,b,c。 + - **示例**:在小时字段中使用 `0,6,12,18` 表示任务将在每天的0点、6点、12点和18点运行。 + + ``` + 0 0,6,12,18 * * * /path/to/command + ``` + + 3. **短横线(`-`)** + + - **含义**:指定一个范围值,开始-结尾。 + - **示例**:在日期字段中使用 `1-5` 表示任务将在每个月的1号到5号之间运行。 + + ``` + 0 0 1-5 * * /path/to/command + ``` + + 4. **斜杠(`/`)** + + - **含义**:指定步长值,即间隔。 + - **示例**:在分钟字段中使用 `*/15` 表示任务每15分钟运行一次。 + + ``` + */15 * * * * /path/to/command + ``` + + 5. **L(Last)** + + - **含义**:表示最后一个。可以在月的天数或星期几中使用。 + - **示例**:在日期字段中使用 `L` 表示每个月的最后一天。 + + ``` + 0 0 L * * /path/to/command + ``` + + - **示例**:在星期几字段中使用 `5L` 表示每个月的最后一个星期五。 + + ``` + 0 0 * * 5L /path/to/command + ``` + + 6. **全局配置文件**:`/etc/crontab` 是一个全局配置文件,用于定义系统级的定时任务。 + + 7. **文件格式**:与用户级的 `crontab` 文件相比,`/etc/crontab` 多了一个字段,用于指定执行任务的用户。格式如下: + + ``` + m h dom mon dow user command + ``` + + 例如: + + ``` + 30 2 * * * root /usr/local/bin/backup.sh + ``` + + 这行表示每天凌晨2:30以root用户的身份执行 `/usr/local/bin/backup.sh`。 + + **使用场景:** + + - **统一管理系统任务**:适合定义一些系统级的任务,比如系统备份、日志轮替等。 + - **需要不同用户执行的任务**:如果需要在同一文件中定义由不同用户执行的任务,可以使用 `/etc/crontab`。 + + #### **4.1.2** **`/etc/cron.d/`** + + **特点:** + + 1. **目录结构**:`/etc/cron.d/` 目录中可以包含多个文件,每个文件可以定义多个任务。 + + 2. **文件格式**:与 `/etc/crontab` 文件的格式相同,需要包含一个用户字段。格式如下: + + ``` + m h dom mon dow user command + ``` + + 例如,在 `/etc/cron.d/mytasks` 文件中: + + ``` + 0 4 * * * root /usr/local/bin/daily_task.sh + 15 14 1 * * user /usr/local/bin/monthly_report.sh + ``` \ No newline at end of file -- Gitee