在serv00上部署gocron并保活

项目地址:
https://github.com/ouqiang/gocron
由于作者的项目存在部分缺陷,在后台命令行只能输入256字节内容,我对其进行了,修改,并加入了启动、保活及保号脚本,免去了各位佬友自行添加。

在面板后台你也可以自行设置SSH相关的命令。

先看看效果吧,和cf保活输出内容差不多,其优势在于:

  • 可以在后台创建无数个任务
  • 灵活性较高
  • 可以自定义其他任务脚本
  • 不受Cloudflare每次只能执行15s限制
  • 相当于小青龙,只是文件不能在后台改,必须去serv00目录改

电报:
image.png

1.开放2个端口并开启应用权限

一个端口用于面板登录,一个端口用于交互
image.png

2.将域名托管到serv00并创建Website

image.png

3.创建MySQL数据库

image.png

4.下载gocron

进入 public_html 文件下

1
cd /usr/home/你的serv名字/domains/域名/public_html

启用 Go Modules 功能

1
export GO111MODULE=on

下载并进入gocron

1
git clone https://github.com/zjmkkk/gocron.git && cd gocron

编译项目

1
make

构建路径

1
export PATH=$PATH:$(go env GOPATH)/bin

5.修改脚本中的start.sh文件并执行

去文件管理器后台找到start.sh(在你的域名的/public_html/gocron目录下的,修改文件的面板端口交互端口为你前面创建的并保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

# 启动 gocron web
start_gocron_web() {
echo "Starting gocron web on port 面板端口..."
./bin/gocron web --port 面板端口 &
}

# 启动 gocron-node
start_gocron_node() {
echo "Starting gocron-node on port 交互端口..."
./bin/gocron-node -s 0.0.0.0:交互端口 &
}

# 启动服务
start_gocron_web
start_gocron_node

echo "Services started."

赋权start.sh

1
chmod +x /usr/home/你的serv名字/domains/域名/public_html/gocron/start.sh

启动脚本

1
./start.sh

6.安装gocron

访问你的域名
image.png
测试一下
image.png

7.修改MySQL数据库最大字节限制

image.png

image.png

8.保活serv00进程

image.png
cron填数字,其余不要填,这玩意和一般cron不太一样,第一位随便填个数字,不然消息会爆炸
如:

15 */59 */4 * * *
命令放入代码,修改你的账号密码,及需要执行的命令,可以有多个,支持pm2及特殊命令

1
2
3
4
5
bash /usr/home/你的serv00账号/domains/你的域名/public_html/gocron/baohuo.sh \
'[{"ip":"s12.serv00.com","user":"账号","pwd":"密码","commands":["ls", "pwd"]},
{"ip":"s12.serv00.com","user":"账号","pwd":"密码","commands":["df","pm2 /usr/home/serv00name"]}]' \
"你的电报token" \
"你的电报ID"

其余默认保存就行

测试一下消息就开始推送了
image.png

9.保号

image.png
命令放入代码,修改你的账号密码

1
2
3
4
5
bash /usr/home/你的serv00账号/domains/你的域名/public_html/gocron/baohao.sh \
'[{"ip":"s12.serv00.com","账号":"your_user1","pwd":"密码"},
{"ip":"s12.serv00.com","账号":"your_user2","pwd":"密码"}]' \
"你的电报token" \
"你的电报ID"

上面脚本都是我修改后支持消息推送的

如果你单纯想保活,其实很简单,一行命令就解决

1
sshpass -p "你的密码" ssh -o StrictHostKeyChecking=no 你的serv00名字@s12.serv00.com "你的命令"

10.可以放CF进行外部保活该项目

自己在gocron目录下创建restart.sh文本并修改你的对应路径就行,最后放入CF中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash

# 设置脚本路径
SCRIPT_PATH="/usr/home/serv00账号/domains/你的域名/public_html/gocron/start.sh"
WORK_DIR="/usr/home/serv00账号/domains/你的域名/public_html/gocron"
PORT=你的面板端口

# 检查端口是否被占用
if ! sockstat -4 -l | grep -q ":$PORT"
then
# 如果端口没有被占用,则重新启动脚本
cd "$WORK_DIR"
nohup ./start.sh > /dev/null 2>&1 &
echo "Restarted start.sh at $(date)" >> "$WORK_DIR/restart_log.txt"
fi

将绝对路径放入CF即可稳定运行

Cloudflare Worker自动检测并添加servoo/CT8的Cron

📎 参考文章