一、计划任务
1 什么是计划任务?
定义:在特定时间自动执行预先设定的命令或脚本。
核心用途:
- 延迟执行(如30秒后重启服务)。
- 周期性任务(如每日备份数据库、每小时同步数据)。
- 脱机任务(如无人值守服务器运维)。
2.Linux中的两大工具
| 工具 | 适用场景 | 时间粒度 | 特点 |
|---|---|---|---|
| at | 一次性/延迟任务 | 秒级精准 | 简单、轻量级,无需持久化守护进程 |
| cron | 周期性重复任务 | 分钟级调度 | 复杂时间表达式,需长期运行守护进程 |
1 | systemctl status atd.service #用于查看 Linux 系统中 `atd`服务(定时任务调度服务)当前状态的命令 |

1 | systemctl status crond.service #用于查看 Linux 系统中 crond 服务(定时任务调度守护进程)的当前运行状态及相关信息 |

二、at命令
1.基本语法
1 | at [选项] 时间表达式 [命令] |
提交任务:输入命令后按 Ctrl+D 提交。
查看任务: atq (列出所有任务)。
删除任务: atrm <任务ID> 。
1 | #时间格式 |
date命令解释:
date 的格式化符号以 % 开头,后接特定字母表示不同时间单位。以下是常用符号及其含义:

ctrl+d退出

2.管理命令
| 命令 | 作用 | 示例 |
|---|---|---|
| atq | 查看所有待执行任务 | atq -l(详细列表) |
| atrm | 删除任务 | atrm 3 (删除ID=3的任务) |
| at -c | 查看任务内容 | at -c 5 (查看ID=5的任务) |
三、cron命令
1.核心功能
cron 是 Linux/Unix 系统中用于周期性执行任务的守护进程,适合以下场景:
定时备份:每日/每周自动备份数据。
日志清理:定时删除过期日志文件。
数据同步:每小时同步服务器间数据。
监控报警:检测服务状态并发送通知
2.配置文件
系统级: /etc/crontab 编辑模板(所有用户生效)。
语法
1 | * * * * * 用户名 命令 |
3.时间表达式
| 字段 | 允许值 | 特殊符号 |
|---|---|---|
| 分钟 | 0-59 | * , - , / , ? |
| 小时 | 0-23 | 同上 |
| 日 | 1-31 | * , - , / , L |
| 月 | 1-12 | * , - , / |
| 星期 | 0-7 | * , - , / |
1 |
|
4.管理命令详解
crontab 是 cron 的配置工具,用于安装、删除、编辑用户的计划任务。
| 命令 | 作业 | 示例 |
|---|---|---|
| crontab -e | 编辑当前用户任务 | crontab -e |
| crontab -l | 列出当前用户任务 | crontab -l |
| crontab -r | 删除当前用户所有任务 | crontab -r |
| crontab -u username | 管理其他用户任务(需sudo) | sudo crontab -e user1 |
| crontab -i | 编辑时交互提示 | crontab -i |
| crontab -d | 删除用户任务(旧版用法) | crontab -d |
5.使用方法
场景1:每两个月的工作日的凌晨3点打包备份日志/var/log/secure
可以在/etc/crontab中直接编辑,也可以使用命令crontab -e 进行编辑
1 | [root@farrah 桌面]# crontab -e |