linux定时任务调度定系统——opencron

https://gitee.com/terrytan/opencron/#%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83

一个功能完善真正通用的linux定时任务调度定系统,满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh,提供一个方便管理定时任务的平台.

你是否有定时执行任务计划的需求,需要在linux的crontab里一一定义任务?

  • 需要在每台linux服务器的crontab里一一定义任务
  • 任务的执行监控太不方便了
  • 得登录到每台机器查看定时任务的运行结果,机器一多简直是一种灾难
  • 对于多台机器协同处理一个任务很麻烦,如何保证多台机器上的任务按顺序依次执行?
  • 当任务运行失败,要重新执行,还得重新定义下执行时间,让其重跑,重跑完成了还得改回正常时间
  • 正在运行的任务要kill掉很麻烦,查看进程然后才能kill ......

opencron的出现将彻底的解决上面所有问题.功能如下:

Tomcat server 7.0 or greater https://tomcat.apache.org
 
Browser IE10+
 
部署环境:
Centos 7.2 x86_64
 
JDK 7.0.79
Tomcat 7.0.68
 
客户端:
192.168.145.121
192.168.145.122
 

安装步骤

    opencron分为两个opencron-server端和opencron-agent端,opencron-server端即为一个web可视化的中央管理调度平台,opencron-agent为要管理的任务的机器,每个要纳入中央统一管理的机器都必须安装opencron-agent, opencron-agent在要管理的服务器中安装执行完后,可以直接在opencron-server添加当前的机器.
 
opencron-agent 安装步骤
 
1) 下载源码,并进行编译:
# git clone https://github.com/wolfboys/opencron.git
# cd opencron
# sh build.sh
[INFO] opencron ........................................... SUCCESS [01:48 min]
[INFO] opencron-common .................................... SUCCESS [02:11 min]
[INFO] opencron-agent ..................................... SUCCESS [ 51.155 s]
[INFO] opencron-server .................................... SUCCESS [01:42 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 06:34 min
[INFO] Finished at: 2017-11-30T09:47:55+08:00
[INFO] Final Memory: 47M/256M
[INFO] ------------------------------------------------------------------------
[opencron] build opencron @ Version 1.1.0-RELEASE successfully! please goto /root/opencron/dist
编译完成的文件在build/dist下
 
 
 
2) 部署agent,将opencron-agent-1.1.0-RELEASE.tar.gz包拷贝到要管理任务的目标服务器,解包后会看到以下目录
# tar zxf opencron-agent-1.1.0-RELEASE.tar.gz
---bin/
| startup.sh #agent的启动脚本,调用的是opencron.sh来完成
| shutdown.sh #agent停止脚本,调用的是opencron.sh来完成
| opencron.sh #agent控制启动|停止的脚本
| monitor.sh #实时监控获取数据需要的脚本,由系统调度
| kill.sh #kill任务时需要的脚本,由系统调度
---conf/
| log4j.properties #log4j配置文件
---lib/
| *.jar #agent运行需要的jar文件
---temp/
| *.sh #用于存放项目生成的零时文件的目录
---logs
| opencron.out #项目启动会产生的Log文件
 
3) 启动opencron-agent 进入opencron-agent/bin
> cd opencron-agent/bin
> sh startup.sh
这里可以接受两个参数,分别是服务启动的端口和密码,默认端口是:1577,默认密码:opencron
如要指定参数启动命令如下:
> sh startup.sh -P10001 -p123456
参数说明:
-P (大写的p)为agent启动的端口,选填,如果不输入默认启动端口是1577
-p (小写的p)为当前agent的连接密码,选填,如果不输入默认连接该机器的密码是opencron
更多详细的启动信息请查看logs/opencron.out
 
4) 停止opencron-agent 进入opencron-agent/bin 执行:
> cd opencron-agent/bin
> sh shutdown.sh
 
opencron-server 部署步骤
1) 编译好项目源码,找到 build/dist/opencron-server.war
 
2) 更改项目的mysql连接信息,mysql的配置在config.properties里,更改即可:
如:
--mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.145.213:3306/opencron?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456
 
3) 发布到tomcat或者其他的web服务器启动即可.第一次会自动创建表。
提示:默认初始用户名opencron,密码opencron,第一次登陆会提示修改密码.
 
4) tomcat发布项目步骤:
  tomcat部署有两种部署方式
  1):直接部署到webapps下:
      1:下载tomcat8或者以上版本(http://tomcat.apache.org)
      2:解压tomcat,删除webapps目录下的全部文件
        >  rm -rf ${tomcat_home}/webapps/*
      3:在webapps下新建ROOT文件夹
        >  mkdir ${tomcat_home}/webapps/ROOT
      4:将war解包到ROOT下并删除war文件(注意解包完毕一定要删除war包)
        >  mv server.war ${tomcat_home}/webapps/ROOT
        >  cd ${tomcat_home}/webapps/ROOT
        >  jar -xvf server.war
        >  rm -rf server.war
      5:更改jdbc配置信息
        > vi ${tomcat_home}/webapps/ROOT/WEB-INF/classes/config.properties
      6:完成启动
  2):通过配置server.xml外部指向
      1:将war包解压到指定的路径,如 /data/www/opencron,并删除war包
      2:更改jdbc配置文件
        vi /data/www/opencron/WEB-INF/classes/config.properties
      3:进入tomcat的conf中修改server.xml配置文件
        下面附上我的完整的server.xml配置:
 
添加服务器,如下图
 
添加任务计划,如下图:
 
任务执行状态,如下图:
 
服务器资源监控,如下图:
 
 
 
 
 

linux定时任务调度定系统——opencron的更多相关文章

  1. Linux 定时任务调度(crontab命令)

    crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务 Linux 下的任务调度 系 ...

  2. Linux定时任务调度

    ⒈概述 任务调度:是指系统在某个时间执行的特定的命令或程序 分类:1)系统任务:有些重要的工作必须周而复始的执行,例如病毒扫描等 2)用户任务:个别用户可能希望定时执行某些程序,例如mysql定时备份 ...

  3. linux 定时任务调度Cron的用法详解

    在linux中,推荐使用crontab -e命令添加自定义的任务,退出后重启crond进程. 重新启动cron服务或重新加载cron配置,命令: 复制代码代码示例: /etc/rc.d/init.d/ ...

  4. Linux -定时任务调度

    l crond 任务调度   crontab 进行定时任务的设置,. 概述 任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行.如病毒扫 ...

  5. 分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)

    1.业务场景 保险人管系统每月工资结算,平安有150万代理人,如何快速的进行工资结算(数据运算型) 保险短信开门红/电商双十一 1000w+短信发送(短时汇聚型) 工作中业务场景非常多,所涉及到的场景 ...

  6. [Node] Agenda 中文文档 定时任务调度系统[基础篇]

    Agenda简介 使用步骤概述 步骤详述 初始化 定义任务 参数说明: 配置任务 参数说明 设置监听 注意事项 Agenda简介 Agenda是一个定时任务管理模块,它将node中的定时任务存储在数据 ...

  7. Java定时任务调度详解

    前言 在实际项目开发中,除了Web应用.SOA服务外,还有一类不可缺少的,那就是定时任务调度.定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券 ...

  8. linux定时执行任务crontab命令用法

    linux系统的定时任务是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所 ...

  9. linux定时执行任务 转

    转自:http://www.cnblogs.com/thinksasa/archive/2013/06/06/3121030.html linux定时执行任务   (1)Linux下如何定时执行php ...

随机推荐

  1. 简单的异步函数async/await例子

    function resolveAfter2Seconds(x){ return new Promise(resolve => { setTimeout(() => { resolve(x ...

  2. LabVIEW(十六):多列列表框控件

    1.多列列表框控件:前面板右键>列表.表格和树>多列列表框2.默认情况下只显示列首,可设置显示行首:前面板选中多列列表框右键>显示>行首3.LabVIEW中提供42种自带的图标 ...

  3. https网页加载http资源导致的页面报错及解决方案

    https是当下的网站的主流趋势,甚至像苹果这样的大公司,则完全要求用户必须使用https地址. 然而对于以前http链接来说,我们往往就存在一个兼容性问题,因为你不可能一下就全部切换过去,应该在很长 ...

  4. 30-socketserver类

    SocketServer模块简化了编写网络服务程序的任务.同时SocketServer模块也是Python标准库中很多服务器框架的基础. socketserver模块可以简化网络服务器的编写,Pyth ...

  5. PHP使用Zend Opcache之优化加速和缓存清理总结

    简介 字节码缓存不是php的新特性,有很多独立性的扩展可以实现缓存,比如PHP Cache(APC),eAccelerator,ionCube和XCache等等.但是到目前为止,这些独立的扩展并没有集 ...

  6. Intellij-插件安装-JRebel热部署插件安装

    环境介绍: Win7.JDK1.8.maven+jetty插件.SpringMVC.Intellij IDEA 2018.1.2 安装插件: 在线安装: Settings --> Plugins ...

  7. Android并发编程 原子类与并发容器

    在Android开发的漫漫长途上的一点感想和记录,如果能给各位看官带来一丝启发或者帮助,那真是极好的. 前言 上一篇博文中,主要说了些线程以及锁的东西,我们大多数的并发开发需求,基本上可以用synch ...

  8. ACM学习<二>

    穷举算法思想:     一句话:就是从所有可能的情况,搜索出正确的答案. 步骤:     1.对于一种可能的情况,计算其结果.     2.判断结果是否满足,YES计算下一个,no继续步骤1,然后判断 ...

  9. 从零开始学 Web 之 JavaScript 高级(一)原型,贪吃蛇案例

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  10. RabbitMQ在分布式系统中的应用

    怎么保证可靠性的? RabbitMQ提供了几种特性,牺牲了一点性能代价,提供了可靠性的保证. 持久化当RabbitMQ退出时,默认会将消息和队列都清除,所以需要在第一次声明队列和发送消息时指定其持久化 ...