计划任务
2026/7/23大约 2 分钟
Crontab命令
crontab 是 Linux 下基于时间的任务调度器。其核心语法如下:
1. 语法格式
在配置文件中,每一行代表一个任务,格式为:
* * * * * command_to_execute
| 字段 | 含义 | 取值范围 |
|---|---|---|
| 第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均代表周日) |
2. 特殊符号
*:匹配任意值(每...)。,:枚举值(如1,3,5表示第 1, 3, 5 分钟)。-:范围(如1-5表示周一到周五)。/n:间隔步长(如*/10表示每隔 10 个单位)。
3. 管理命令
**crontab -e**:编辑当前用户的任务列表(使用默认编辑器)。**crontab -l**:列出当前用户的所有定时任务。**crontab -r**:删除当前用户的所有任务(慎用)。**crontab -u username -e**:以管理员身份编辑指定用户的任务。
4. 典型示例
- 每分钟执行一次:
* * * * * /usr/bin/script.sh - 每天凌晨 2:30 执行:
30 2 * * * /usr/bin/backup.sh - 每小时的第 5 分钟执行:
5 * * * * /usr/bin/check.sh - 每周一至周五 8:00 执行:
0 8 * * 1-5 /usr/bin/work.sh - 每隔 5 天执行一次(0:00):
0 0 */5 * * /usr/bin/clean.sh
5. 核心注意事项
- 使用绝对路径:
crontab运行环境与用户登录环境不同,必须使用/usr/bin/python3而非python3。 - 标准输出处理:任务执行时的输出默认会发邮件给用户。建议重定向 到文件或丢弃:
* * * * * /path/to/cmd >> /var/log/cron.log 2>&1
- 环境变量:若脚本依赖特定环境变量,需在脚本开头显式
source /etc/profile。
iptables+crontab
创建计划任务每分钟清除一次防火墙
crontab -e
添加规则
*/1 * * * * bash /iptables/clear_iptables_rules.sh
脚本内容
#!/bin/bash
/usr/sbin/iptables -t nat -F
/usr/sbin/iptables -t filter -F
/usr/sbin/iptables -P INPUT ACCEPT
