A crontab tool build by golang
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
README.md
conf.go fix log dir & log format Jan 16, 2015
crond.go
crontab
crontab.conf
crontab.exe
log.go
run.go
task.go
web.go

README.md

crontab

A crontab tool build by golang

Crontab

背景:

在实际工作中经常需要在服务器上添加定时任务,当任务多了的时候管理起来就比较麻烦,所以想要有一个方便使用和管理的crontab工具

功能介绍:

使用web api的方式提供任务的添加、删除、查看、运行状态、暂停、恢复、重新加载配置、日志查看等功能,清晰的任务执行日志和工具的系统日志便于问题查找和任务监控。

使用:

  • ./crontab -h
  • Usage of ./crontab:
  • -conf="crontab.conf": crontab config
  • -logs="logs/": log path
  • -port=":8080": web port

crontab.conf格式

{"time":"* * * * *","cmd":"php","args":["-v"],"out":"./logs/php_v.log","comment":"备注"}

每一行为一个json对象,字段说明:

  • time:任务执行时间,参考linux crontab
  • cmd:可执行程序
  • args:可执行程序参数
  • out:执行输出文件
  • comment:任务备注

同样适用于api的job字段

API:

api 说明
/get 获取当前设置的任务列表 json
/set?h=key&j=job 设置一个键值为key的任务/修改一个键值为key的任务(h为空或者不设置时,key=md5(job))
/del?h=key 删除键值为key的任务,下次不再执行
/log?d=20141228 获取d天的任务运行日志
/load 重新加载配置文件,可以手动修改配置文件之后调用重新加载而不重启服务
/stop 停止,已经在执行的任务继续执行,停止触发后续任务执行
/start 开始,继续触发任务执行
/status 获取当前正在执行的任务,包括进程ID、任务信息、任务开始时间信息 json

规划功能:

  • 添加邮箱报警功能、当任务执行失败,出错等及时邮箱报警