@cyysu
2017-10-10T07:50:27.000000Z
字数 9323
阅读 1074
- 时间:2017年10月7日
- 作者:Kali
- 邮箱:cyysu.github.io@gmail.com
- 版本:3.0
- 描述:分布式调度系统 - opencron
分布式调度系统
一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的web图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh。
# 更详细的介绍请看下面网址:
https://github.com/wolfboys/opencron
# 安装JDK1.7以上
# 直接下载解压即可,我这里为了演示在我的agent端安装的jdk
lyx@lyx-virtual-machine:~$ tar xf jdk-8u111-linux-x64.tar.gz
# 添加下面内容到 ~/.bashrc
JAVA_HOME=/home/lyx/opencron/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
# 生效环境变量
lyx@lyx-virtual-machine:/opt$ source ~/.bashrc
# 下载github源代码
mj@DZ:~/桌面/Linux$ git clone https://github.com/wolfboys/opencron.git
# 进入目标目录,准备编译,截取部分内容
mj@DZ:~/桌面/Linux$ cd opencron/
# 如果没有Maven的话,该脚本会自动下载依赖
mj@DZ:~/桌面/Linux/opencron$ sh build.sh
-ne \E[1;32m
--------------------------------------------
/ \
/ ___ _ __ ___ _ __ ___ _ __ ___ _ __ \
/ / _ \| '_ \ / _ \ '_ \ / __| '__/ _ \| '_ \ \
/ | (_) | |_) | __/ | | | (__| | | (_) | | | | \
\ \___/| .__/ \___|_| |_|\___|_| \___/|_| |_| /
\ |_| /
\ /
\ --opencron,Let's crontab easy! /
--------------------------------------------
-ne \E[0m
build.sh: 97: [: -ne: unexpected operator
-e [\E[1;32mopencron\E[0m] \E[1;37mbuild opencron Starting...\E[0m
# 编译完之后的效果,部分截图
[INFO] Installing /home/mj/桌面/Linux/opencron/opencron-server/pom.xml to /home/mj/.m2/repository/org/opencron/opencron-server/1.1.0-RELEASE/opencron-server-1.1.0-RELEASE.pom
[INFO] Installing /home/mj/桌面/Linux/opencron/opencron-server/target/opencron-server-1.1.0-RELEASE-sources.jar to /home/mj/.m2/repository/org/opencron/opencron-server/1.1.0-RELEASE/opencron-server-1.1.0-RELEASE-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] opencron ........................................... SUCCESS [ 0.771 s]
[INFO] opencron-common .................................... SUCCESS [ 8.001 s]
[INFO] opencron-agent ..................................... SUCCESS [ 2.204 s]
[INFO] opencron-server .................................... SUCCESS [ 4.041 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.167 s
[INFO] Finished at: 2017-10-07T14:20:50+08:00
[INFO] Final Memory: 49M/727M
[INFO] ------------------------------------------------------------------------
-e [\E[1;32mopencron\E[0m] \E[1;37mbuild opencron @ Version \E[1;34m1.1.0-RELEASE\E[0m successfully! please goto\E[0m \E[1;32m/home/mj/桌面/Linux/opencron/build/dist\E[0m
# 此时我们发现源代码的目录下面多出了build目录
mj@DZ:~/桌面/Linux/opencron$ ls
build checkstyle.xml LICENSE.txt opencron-common pom.xml
build.sh header.txt opencron-agent opencron-server README.md
# 查看目标文件
mj@DZ:~/桌面/Linux/opencron/build/dist$ pwd
/home/mj/桌面/Linux/opencron/build/dist
mj@DZ:~/桌面/Linux/opencron/build/dist$ ls
opencron-agent-1.1.0-RELEASE.tar.gz opencron-server.war
# 复制Agent到需要管理的机器上
mj@DZ:~/桌面/Linux/opencron/build/dist$ scp opencron-agent-1.1.0-RELEASE.tar.gz root@10.0.0.145:/opt
# 进入被管理机器
lyx@lyx-virtual-machine:/opt$ tar xf opencron-agent-1.1.0-RELEASE.tar.gz
# 查看文件内容
lyx@lyx-virtual-machine:/opt/opencron-agent$ tree -L 2 .
.
├── bin ---服务管理目录
│ ├── kill.sh
│ ├── monitor.sh
│ ├── opencron.sh
│ ├── setclasspath.sh
│ ├── shutdown.sh
│ └── startup.sh
├── conf ---服务配置目录
│ ├── conf.properties
│ └── log4j.properties
├── lib ---服务依赖目录
│ ├── commons-cli-1.4.jar
│ ├── commons-codec-1.10.jar
│ ├── commons-exec-1.3.jar
│ ├── commons-io-2.4.jar
│ ├── commons-lang-2.4.jar
│ ├── commons-lang3-3.1.jar
│ ├── commons-logging-1.1.1.jar
│ ├── cron4j-2.2.5.jar
│ ├── fastjson-1.2.31.jar
│ ├── freemarker-2.3.20.jar
│ ├── hamcrest-core-1.3.jar
│ ├── HikariCP-java6-2.3.13.jar
│ ├── httpclient-4.5.3.jar
│ ├── httpcore-4.4.1.jar
│ ├── jackson-annotations-2.7.0.jar
│ ├── jackson-core-2.7.4.jar
│ ├── jackson-databind-2.7.4.jar
│ ├── jackson-module-jaxb-annotations-2.7.4.jar
│ ├── junit-4.11.jar
│ ├── libthrift-0.10.0.jar
│ ├── log4j-1.2.16.jar
│ ├── mchange-commons-java-0.2.11.jar
│ ├── netty-buffer-4.1.5.Final.jar
│ ├── netty-codec-4.1.5.Final.jar
│ ├── netty-codec-http-4.1.5.Final.jar
│ ├── netty-common-4.1.5.Final.jar
│ ├── netty-handler-4.1.5.Final.jar
│ ├── netty-resolver-4.1.5.Final.jar
│ ├── netty-socketio-1.7.12.jar
│ ├── netty-transport-4.1.5.Final.jar
│ ├── netty-transport-native-epoll-4.1.5.Final.jar
│ ├── opencron-agent-1.1.0-RELEASE.jar
│ ├── opencron-common-1.1.0-RELEASE.jar
│ ├── protostuff-api-1.0.12.jar
│ ├── protostuff-collectionschema-1.0.12.jar
│ ├── protostuff-core-1.0.12.jar
│ ├── protostuff-runtime-1.0.12.jar
│ ├── quartz-2.3.0.jar
│ ├── slf4j-api-1.7.21.jar
│ └── slf4j-log4j12-1.7.21.jar
├── logs ---服务日志目录
│ ├── error.out
│ └── opencron.out
└── temp ---服务临时目录
5 directories, 50 files
lyx@lyx-virtual-machine:/opt/opencron-agent$
# 启动agent -P:指定端口 -p:指定连接密码 默认端口:密码为 1577:opencron
lyx@lyx-virtual-machine:/opt/opencron-agent$ sh ./bin/startup.sh -P10001 -p123456
# Agent启动日志如下,当可以看到端口信息和start之后基本上就起来了
log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
log4j:WARN Using previously set target, System.out by default.
log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
log4j:WARN Using previously set target, System.out by default.
log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
log4j:WARN Using previously set target, System.out by default.
log4j:WARN [/opt/opencron-agent/logs/opencron.out] should be System.out or System.err.
log4j:WARN Using previously set target, System.out by default.
[INFO ] 2017-10-07 13:08:00,197(0) --> [main] com.corundumstudio.socketio.SocketIOServer.startAsync(SocketIOServer.java:130): Session store / pubsub factory used: MemoryStoreFactory (local session store only)
2017-10-07 13:08:00,197 INFO (com.corundumstudio.socketio.SocketIOServer:130) - Session store / pubsub factory used: MemoryStoreFactory (local session store only)
[INFO ] 2017-10-07 13:08:00,373(176) --> [nioEventLoopGroup-2-1] com.corundumstudio.socketio.SocketIOServer$1.operationComplete(SocketIOServer.java:155): SocketIO server started at port: 17502
2017-10-07 13:08:00,373 INFO (com.corundumstudio.socketio.SocketIOServer:155) - SocketIO server started at port: 17502
[INFO ] 2017-10-07 13:08:00,375(178) --> [main] org.opencron.agent.Bootstrap.start(Bootstrap.java:215): [opencron]agent started @ port:10001,pid:2908
2017-10-07 13:08:00,375 INFO (org.opencron.agent.Bootstrap:215) - [opencron]agent started @ port:10001,pid:2908
# 我们的Agent端部署完毕之后,下面开始部署我们的server端,进入tomacat目录,如果没有tomcat的需要自己去下载,解压之后就可以使用
mj@DZ:/opt/apache-tomcat-7.0.81$ pwd
/opt/apache-tomcat-7.0.81
# 进入web跟目录
mj@DZ:/opt/apache-tomcat-7.0.81$ cd webapps/
# 如果仅仅是测试使用,删除所有文件
mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ rm -rf ./*
# 建立一个ROOT文件夹
mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ mkdir ROOT
# 解压服务器war文件 ,然后删除war
mj@DZ:/opt/apache-tomcat-7.0.81/webapps$ jar -xvf server.war
# 解压之后的目录
mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT$ pwd
/opt/apache-tomcat-7.0.81/webapps/ROOT
mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT$ ls
META-INF static WEB-INF
# 进入配置文件目录
mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ pwd
/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes
mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ ls
applicationContext-datasource.xml config.properties
applicationContext-mvc.xml log4j.properties
applicationContext-place.xml org/
applicationContext-websocket.xml
# 修改数据连接串,这里重点是修改用户名、密码以及连接IP
mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ cat config.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/opencron?useUnicode=true&characterEncoding=utf8&useCursorFetch=true&autoReconnect=true&failOverReadOnly=false
jdbc.username=root
jdbc.password=root
#hibernate
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql=true
hibernate.format_sql=false
hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
hibernate.cache.provider_class=net.sf.ehcache.hibernate.EhCacheProvider
hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
hibernate.cache.use_second_level_cache=false
hibernate.cache.use_query_cache=false
jdbc.use_scrollable_resultset=false
#单一登陆,同一用户只能在一处登陆,如多处登陆,后登陆的会把前面已经登陆的统统踢下线(为了安全考虑,默认是true,即不允许多段同时登陆)
opencron.singlelogin=true
#agent端自动注册的key
opencron.autoRegKey=opencron@2016
#agent监控服务端口
opencorn.monitorPort=17502
# 服务器安装mysql,在安装的过程中会提示你设置root的密码
mj@DZ:/opt/apache-tomcat-7.0.81/webapps/ROOT/WEB-INF/classes$ sudo apt-get install mysql-server
# 连接mysql
mj@DZ:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1085
Server version: 5.7.19-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
# 创建opencron数据库,里面的表在连接时会自动创建
mysql> create database opencron;
# 查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| abccs |
| mysql |
| opencron |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
# 退出数据库
mysql> exit
Bye
mj@DZ:/opt/apache-tomcat-7.0.81/bin$ pwd
/opt/apache-tomcat-7.0.81/bin
mj@DZ:/opt/apache-tomcat-7.0.81/bin$ ./startup.sh
Using CATALINA_BASE: /opt/apache-tomcat-7.0.81
Using CATALINA_HOME: /opt/apache-tomcat-7.0.81
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.81/temp
Using JRE_HOME: /opt/jdk1.8.0_111/jre
Using CLASSPATH: /opt/apache-tomcat-7.0.81/bin/bootstrap.jar:/opt/apache-tomcat-7.0.81/bin/tomcat-juli.jar
Tomcat started.
mj@DZ:/opt/apache-tomcat-7.0.81/bin$
# 如果出现端口被占用的问题,修改下面的server.xml配置中的端口
mj@DZ:/opt/apache-tomcat-7.0.81/conf$ pwd
/opt/apache-tomcat-7.0.81/conf
mj@DZ:/opt/apache-tomcat-7.0.81/conf$ vim server.xml
# 不出意外的话访问 ip:端口 就可以看到下面的页面
注意:我这里进行了一次任务作业,所以会出现作业数量,默认是没有的。
支付宝 微信