crontab 管理工具

授权协议 GPL
开发语言 Google Go
所属分类 应用工具、 操作系统工具
软件类型 开源软件
地区 国产
投 递 者 花欣然
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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":"备注"}

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

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

同样适用于api的job字段

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

规划功能:

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

声明:

本项目目前在linux64(centos)和windos 7上golang 1.3+ 每分钟100个任务测试下,cpu瞬时峰值10~20%,大多时间为0% ,内存占有20M左右, 长时间(7days+)运行,任务执行正常,各项资源使用正常,但还未大量用于生产服务,对此项目感兴趣的朋友麻烦给个星支持一下,同时感谢提供宝贵意见,可以直接邮箱我。

  • cron cron是linux的后台程序用来执行提前计划好的命令。什么意思呢? 就是你提前写好一些脚本,放在特定的目录,cron就会按照你设置的时间来定期执行。举一个简单的应用场景,我自己启动一个程序,需要每1分钟,检查程序是否存在,不存在则拉起这个程序。就可以使用cron来完成。 crontab 上面说了cron是执行各种定时任务的,但是你如何把你的任务传递给cron呢?就需要使用crontab

  •   crontab 命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。 选项参数如下: -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该用户的计时器设置; -u<用户名称>:指定

  • 软件简介 crontab A crontab tool build by golang Crontab 背景: 在实际工作中经常需要在服务器上添加定时任务,当任务多了的时候管理起来就比较麻烦,所以想要有一个方便使用和管理的crontab工具 功能介绍: 使用web api的方式提供任务的添加、删除、查看、运行状态、暂停、恢复、重新加载配置、日志查看等功能,清晰的任务执行日志和工具的系统日志便于问题

  • 1.在服务器增加一个每分钟执行的任务(入口文件) * * * * * php root/****/Crontab.php 1 2.创建入口文件Crontab.php //设备ID,服务器的设备编号 $device_id = $_SERVER['argv'][1]; if(!$device_id){ exit("缺少设备ID参数"); } $crontab = new CrontabModel($d

  • 引言 python-crontab是python模块,提供了对cron任务的访问,并使得我们可以通过python对crontab文件进行修改。 安装 pip install python-crontab 注意:如果在使用CronTab的时候报错,报错信息为 got an unexpected keyword argument ‘user’ 可能是库安装错了,应该安装python-crontab而不

  • 浅谈Linux下crontab定时任务管理 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 1、cd /root/bin 2、新增cron.sh文件 59 23 * * * sh /root/bi

 相关资料
  • 主要内容:下载 RockMongo,安装 RockMongo,创建数据库,创建集合,创建文档,导出/导入数据RockMongo 是一个 MongoDB 管理工具,您可以使用它来管理 MongoDB 服务、数据库、集合、文档、索引等等。它为阅读、编写和创建文档提供了一种非常友好的方式,类似于使用 PHP 开发的 MySQL 管理工具 PHPMyAdmin。 下载 RockMongo 您可以从 https://gitee.com/mirrors/rockmongo 或 https://github.

  • rpcx提供了一个简单的UI管理程序,可以查看和搜索当前注册的服务以及服务的状态, 同时你也可以临时禁用服务,分组或者更改服务的元数据。 rpcx-ui

  • 提纲ceph auth [ add | caps | del | export | get | get-key | get-or-create | get-or-create-key | import | list | print-key | print_key ] ... ceph compact ceph config-key [ del | exists | get | list | put

  • Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: /HelloWorld/HelloWorld/settings.py 文件代码:INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib

  • Package Import Paths # demopkg1/__init__.py import pkgutil import pprint print('demopkg1.__path__ before:') pprint.pprint(__path__) print() __path__ = pkgutil.extend_path(__path__, __name__) print(

  • 工作管理指的是在单个登录终端(也就是登录的 Shell 界面)同时管理多个工作的行为。也就是说,我们登陆了一个终端,已经在执行一个操作,那么是否可以在不关闭当前操作的情况下执行其他操作呢? 当然可以,我们可以再启动一个终端,然后执行其他的操作。不过,是否可以在一个终端执行不同的操作呢?这就需要通过工作管理来实现了。 例如,我在当前终端正在 vi 一个文件,在不停止 vi 的情况下,如果我想在同一个