Skip to content

crontab

基本用法

查看定时任务

bash
#!/bin/bash

# 查看当前用户的定时任务
crontab -l

编辑定时任务

bash
#!/bin/bash

# 编辑当前用户的定时任务
crontab -e

删除定时任务

bash
#!/bin/bash

# 删除当前用户的定时任务
crontab -r

时间格式

基本格式

bash
# * * * * * command
# │ │ │ │ │
# │ │ │ │ └─── 星期几 (0-7, 0 和 7 都表示星期日)
# │ │ │ └───── 月份 (1-12)
# │ │ └─────── 日期 (1-31)
# │ └───────── 小时 (0-23)
# └─────────── 分钟 (0-59)

时间示例

bash
# 每分钟执行
* * * * * command

# 每小时执行
0 * * * * command

# 每天执行
0 0 * * * command

# 每周执行
0 0 * * 0 command

# 每月执行
0 0 1 * * command

实用示例

示例1:定时备份

bash
#!/bin/bash

# 每天凌晨 2 点备份
0 2 * * * /path/to/backup.sh

# 每周日凌晨 3 点备份
0 3 * * 0 /path/to/backup.sh

示例2:定时清理

bash
#!/bin/bash

# 每天凌晨 1 点清理临时文件
0 1 * * * rm -rf /tmp/*

# 每月 1 号凌晨 2 点清理日志
0 2 1 * * find /var/log -name "*.log" -mtime +30 -delete

示例3:定时同步

bash
#!/bin/bash

# 每小时同步数据
0 * * * * /path/to/sync.sh

# 每 10 分钟同步数据
*/10 * * * * /path/to/sync.sh

示例4:定时监控

bash
#!/bin/bash

# 每 5 分钟检查服务
*/5 * * * * /path/to/check.sh

# 每分钟检查服务
* * * * * /path/to/check.sh

最佳实践

1. 使用绝对路径

bash
# 好的做法
0 0 * * * /path/to/script.sh

# 不好的做法
0 0 * * * script.sh

2. 重定向输出

bash
# 好的做法
0 0 * * * /path/to/script.sh > /var/log/script.log 2>&1

# 不好的做法
0 0 * * * /path/to/script.sh

3. 设置环境变量

bash
# 好的做法
PATH=/usr/local/bin:/usr/bin:/bin
0 0 * * * /path/to/script.sh

# 不好的做法
0 0 * * * /path/to/script.sh

总结

crontab 的关键点:

  1. 基本用法:查看、编辑、删除定时任务
  2. 时间格式:分钟、小时、日期、月份、星期几
  3. 实用示例:定时备份、定时清理、定时同步、定时监控
  4. 最佳实践:使用绝对路径、重定向输出、设置环境变量

下一节我们将学习系统服务的使用。