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配置:
添加服务器,如下图
添加任务计划,如下图:
任务执行状态,如下图:
服务器资源监控,如下图: