你还在一台台机器去查看你的`cron`任务么,如果是的话,那么你就Out啦,今天主要介绍的是一个Go语言开发的Cron管理工具,在Github上是开源的项目
开源地址:https://github.com/ouqiang/gocron
1:介绍
使用Go语言开发的轻量级定时任务集中调度和管理系统, 用于替代Linux-crontab
2:功能特性
1:Web界面管理定时任务
2:crontab时间表达式, 精确到秒
3:任务执行失败可重试
4:任务执行超时, 强制结束
5:任务依赖配置, A任务完成后再执行B任务
6:账户权限控制文章来源(Source):https://www.dqzboy.com
7:任务类型
7.1:shell任务
- 在任务节点上执行shell命令, 支持任务同时在多个节点上运行
7.2:HTTP任务
- 访问指定的URL地址, 由调度器直接执行, 不依赖任务节点
8:查看任务执行结果日志
9:任务执行结果通知, 支持邮件、Slack、Webhook
支持平台:Windows、Linux、Mac OS
3:安装部署
3.1:部署MySQL
1:部署源
cat << eof>> /etc/yum.repos.d/mysql.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
eof
2:安装MySQL
yum install -y mysql-community*
3:启动数据库
systemctl enable mysqld --now
4:修改数据库密码
MYSQLPD=$(cat /var/log/mysqld.log | grep 'password' | awk '{print $11}')
mysql -uroot -p$MYSQLPD
# 密码验证策略低要求
set global validate_password_policy=0; (0或LOW代表低级)
# 密码至少要包含的小写字母个数和大写字母个数
set global validate_password_mixed_case_count=0;
# 密码至少要包含的数字个数
set global validate_password_number_count=0;
# 密码至少要包含的特殊字符数
set global validate_password_special_char_count=0;
# 密码长度
set global validate_password_length=3;
# 设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
5:创建数据库
CREATE DATABASE `gocron` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
3.2:安装Gocron
1:下载程序
这里我们需要下载两个程序包,一个是主程序,另一个是node节点需要安装的程序,如果觉得github下载慢,我们可以使用如下链接
https://hub.fastgit.xyz/ouqiang/gocron/releases/download/v1.5.3/gocron-v1.5.3-linux-amd64.tar.gz
https://hub.fastgit.xyz/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz
gocron-node-v1.5.3-linux-amd64.tar.gz gocron-v1.5.3-linux-amd64.tar.gz
2:安装Golang(其实也可以不下载)
yum install -y golang
3:解压
tar xf gocron-v1.5.3-linux-amd64.tar.gz -C /usr/local/
mv /usr/local/gocron-linux-amd64 /usr/local/gocron
4:后台启动
nohup /usr/local/gocron/gocron web >/tmp/gocron.log 2>&1 &
5:web端口为5920,我们可以测试访问了
根据配置填写信息
登录之后如下图
4:安装节点
如果执行方式为shell时,必须在所需执行的主机节点上安装部署gocron-node才可以,默认监听端口为5921
注意:启动节点不允许通过root账号启动,需创建一个普通用户
1:传递节点包到节点服务器上
scp gocron-node-v1.5.3-linux-amd64.tar.gz root@10.0.0.11:/root/
tar xf gocron-node-v1.5.3-linux-amd64.tar.gz -C /usr/local/
mv /usr/local/gocron-node-linux-amd64 /usr/local/gocron_node
2:创建用户
useradd gocron
3:授权用户并启动服务
chown -R gocron. /usr/local/gocron_node/
# 用普通用户来启动服务
su - gocron -c "nohup /usr/local/gocron_node/gocron-node > /tmp/gocron-node.log 2>&1 &"
netstat -nplt | grep 5921
tcp6 0 0 :::5921 :::* LISTEN 1278/gocron-node
5:添加节点
6:加入任务
因为这个程序它不依赖我们服务器的`cron`,所以这个自定义性和管理性是非常的高的,只是看起来好久没有维护了,大家可以根据自己的需求决定是否需要这个程序。