SuperAPI AI 工具集

cron-manager

部署与运维

查看项目

更新于 10-16 04:26

技能介绍

Cron Manager 是一个用于调度和管理 cron 定时任务的技能。当用户需要创建、列出、删除或测试计划任务时可以使用它。

主要能力

  • 创建新的计划任务
  • 列出已有的 cron 任务
  • 删除计划任务
  • 测试 cron 表达式
  • 将人类可读的时间表转换为 cron 表达式

Cron 基础

Cron 表达式格式由五个字段组成,依次为:分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-6,星期日为 0)。

常见调度模式包括:每分钟(* * * * *)、每小时(0 * * * *)、每天午夜(0 0 * * *)、每天上午 9 点(0 9 * * *)、每周日(0 0 * * 0)、每月(0 0 1 * )、每 5 分钟(/5 * * * )、每 30 分钟(/30 * * * *)。

管理 Cron 任务

列出用户 crontab:使用 crontab -l,或 crontab -l -u username 列出指定用户的任务。

添加任务:使用 crontab -e 编辑,或通过命令行追加,例如 (crontab -l 2>/dev/null; echo "0 9 * * * /path/to/script.sh") | crontab -。

删除任务:使用 crontab -r 删除所有任务,或 crontab -r -u username 删除指定用户的任务。

特定操作:可直接运行脚本以立即测试;使用 systemctl status cron(或 crond)检查 cron 服务状态;使用 journalctl -u cron(systemd)或 tail -f /var/log/cron(其他系统)查看日志。

Cron 工具

校验 cron 表达式:可使用 Python 的 croniter 库,检查表达式是否有效并输出接下来 5 次运行时间;也可使用在线工具或 crontab.guru。

人类可读转换:可使用 python-crontab 的 CronSitemap 输出人类可读描述。

脚本示例

  • 备份脚本:每天凌晨 2 点执行备份,输出重定向到日志文件。
  • 日志清理:每天凌晨 3 点清理超过 7 天的日志。
  • 健康检查:每 5 分钟请求一次健康检查 URL。

特殊字符

  • 表示任意值;, 表示列表(如 1,3,5);- 表示范围(如 1-5);/ 表示步长(如 */15 表示每 15)。

注意事项

  • cron 任务使用用户的默认 shell 运行
  • 脚本应使用绝对路径
  • 建议将输出重定向到日志文件
  • 需考虑时区,cron 使用系统时区
  • Thepopebot 使用 config/CRONS.json 进行任务调度