web计划任务gocron

特点:1个web界面可以管理N个节点上的计划任务,节点类型支撑win、linux、mac(说人话:一个web客户端管理多个服务器的计划任务)

缺点:仅能管理自己添加的任务,无法管理系统原有的任务或其它程序添加的任务!!!(多平台的原生任务兼容性,大佬没搞。。。)

注:先决添加需要数据,目前仅支持mysql

web客户端

gocron-v1.5.3-linux-amd64.tar.gz


linux节点

gocron-node-v1.5.3-linux-amd64.tar.gz

win节点

gocron-node-v1.5.3-windows-amd64.zip

mac节点

gocron-node-v1.5.3-darwin-amd64.tar.gz

测试环境:ubuntu24.04

web端部署在ubuntu24.04

node节点:ubuntu、win

流程

1.同步web客户与Node节点的时间

2.创建mysql数据库(目前仅支持mysql)

2.部署 web客户端(监听端口5920)

4.部署 节点(要执行任务的节点,监听端口5921)

5.打开浏览器,web初始化

6.添加节点(要执行任务的节点)

7.节点添加任务

8.其他问题

第一步,同步时间

ntp时间同步,多种方法ntp、chrony,自行百度

第二步,创建mysql数据库

自行创建msyql数据库,这个库名要记住一会要用到!!!

本例,创建数据名为:gocron

第三步,部署web客户端

使用上面的客户端压缩包解压后,添加权限,并启用

注:

启动web测试

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#创建程序存放目录
mkdir -p /usr/local/gocron

#直接解压到/usr/local/gocron
tar -xvf gocron-v1.5.3-linux-amd64.tar.gz
mv ./gocron-v1.5.3-linux-amd64/gocron /usr/local/gocron

#添加执行权限
chmod +x /usr/local/gocron/gocron

#启动测试
/usr/local/gocron/gocron web -p 5920

#结束进程
ps -ef |grep gocron| grep -v grep |awk '{print $2}' |xargs kill -9

添加systemd:/etc/systemd/system/gocron-web.service

注:请确认自己的gocron目录

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# /etc/systemd/system/gocron-web.service
[Unit]
Description=Gocron web
After=network.target

[Service]
Type=simple
User=root
#处理开机启动失败问题,延迟5秒启动
ExecStartPre=/bin/sleep 5
#指定web端口
ExecStart=/usr/local/gocron/gocron web -p 5920
Restart=on-failure

[Install]
WantedBy=multi-user.target

systemct命令

1
2
systemctl daemon-reload
systemctl start gocron-web

第四步,部署节点

对应自己的系统,使用上面的节点压缩包解压后,添加权限,并启用

注:

启动节点测试,因使用的是非root用,所以需要新进入程序目录

1
2
3
4
5
6
7
8
#创建普通用户
useradd gocron

#因使用的是非root用,所以需要进入普通目录,否则默认在root目录下没有权限,这里进入程序目录
cd /usr/local/gocron

#使用普通用户,启动节点
sudo -u gocron /usr/local/gocron/gocron-node

添加systemd:/etc/systemd/system/gocron-node.service

注:请确认自己的gocron目录

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# /etc/systemd/system/gocron-node.service
[Unit]
Description=Gocron node server
After=network.target

[Service]
Type=simple
User=gocron
ExecStart=/usr/local/gocron/gocron-node
Restart=on-failure

[Install]
WantedBy=multi-user.target

systemct命令

1
2
systemctl daemon-reload
systemctl start gocron-node

第五步,打开浏览器,web初始化

打开浏览器:http://你服务器的ip:5920

注:mysql中的表需要提前创建,必须空表,我创建的表名为gocron

第六步,添加节点

节点就是要执行任务的节点,需要提前部署好节点程序(第四步的内容)

打开浏览器:http://你服务器的ip:5920

输入账号密码登录后,创建任务节点

第七步,节点添加任务

其他问题

因为node节点(执行任务的节点)需要使用普通用户来运行,所以如果节点有ssh或其它跳转行为,需要做这个节点的程序运行用户到跳转主机的免密,否则会一直提示当前节点key验证失败!!!有点小bug