1.安装Go
使用go程序必须先有go,Linux下的安装
1 |
yum install go |
查看安装版本
1 |
go version |
2.下载gocron
gocron需要使用下载gocron和gocron-node
这里采用二进制文件的方式安装,因为go已经把源码打包成了可执行文件,下载下来直接运行就可以了,不需要自己去编译和配置依赖
下载执行文件的地址是:
https://github.com/ouqiang/gocron/releases
看清楚自己的系统,需要下载gocron和gocron-node两个包,gocron是web配置平台,gocron-node是需要在想要执行任务的节点服务器部署的程序
下载的时候有时候速度比较慢,多试几次就可以了
1 2 |
wget https://github.com/ouqiang/gocron/releases/download/v1.5.2/gocron-v1.5.1-linux-amd64.tar.gz wget https://github.com/ouqiang/gocron/releases/download/v1.5.2/gocron-node-v1.5.1-linux-amd64.tar.gz |
3、解压
选择合适的目录解压,解压命令:
1 2 3 |
tar -xvf gocron-v1.5.1-linux-amd64.tar.gz tar -xvf gocron-node-v1.5.1-linux-amd64.tar.gz |
我解压的位置在wwwroot下,如果想换位置,可以是用复制的方法复制到指定目录,然后再解压,或是先进入到指定目录,然后再该目录中解压
4、运行
分别进入gocron和gocron-node目录中运行:
启动gocron(为了安全,不使用root执行,而使用用户www来执行):
1 |
sudo -u www ./gocron-v1.5.1-linux-amd64/gocron web |
启动gocron-node(不允许使用root执行,如果使用的是root执行则会失败):
1 |
sudo -u www ./gocron-node-v1.5.1-linux-amd64/gocron-node |
安装时发现启动上述程序,不管启动哪个,都不能按Ctrl + C来终止或关闭SSH客户端,否则直接退出。
5、换成后台脚本运行
创建gocron的shell脚本run.sh,gocron目录及相关文件截图
脚本run.sh:
1 2 3 4 |
#!/bin/bash #启动gocron cd /data/wwwroot/gocron/gocron-linux-amd64 sudo -u www bash -c 'nohup ./gocron web &' |
创建gocron-node的shell脚本run.sh,gocron-node目录及相关文件截图
1 2 3 4 |
#!/bin/bash #启动gocron-node cd /data/wwwroot/gocron/gocron-node-linux-amd64 sudo -u www bash -c 'nohup ./gocron-node &' |
修改文件权限,run.sh需要执行权限
1 |
chmod -R 777 run.sh |
修改指定文件所属权限组,例如
1 |
chown -R www:www run.sh |
返回到/data/wwwroot/gocron/目录,脚本运行gocron和gocron-node
1 2 |
source ./gocron-linux-amd64/run.sh source ./gocron-node-linux-amd64/run.sh |
已成功启动gocron和gocron-node
说明(上述使用source执行的原因):当shell执行脚本的时候,它会开启一个子shell,目录跳转命令只会在这个子shell中执行,并不会影响到父shell。要想在父shell中实现目录的跳转,需要用source来执行脚本。
其他说明:上述run.sh脚本中的bash -c 的使用方法及注意事项
用法:bash -c “cmd string”
通常使用shell去运行脚本,两种方法 bash xxx.sh,另外一种就是bash -c “cmd string”
对于bash xxx.sh, 首先bash 会在当前目录去寻找xxx.sh,如果找到,就直接运行,找不到则按照环境变量$PATH的指定路径,按顺序去找,如果找到,则执行,找不到则报错。
shell脚本的参数$0就是要执行的shell脚本xxx.sh, $1就是后面紧跟xxx.sh的参数,$2 $3依次类推
详细说明请查看【Linux中的bash -c 使用详解】
6、登录
打开web界面
从上面可以看到gocron默认监听的是5920端口,通过浏览器访问:http://localhost:5920 或http://服务器ip:5920 便可以打开web管理窗口
首页打开需要进行一些安装配置
安装完成后会跳转到登录界面
添加任务节点
这里的每个定时任务都需要在一个任务节点下,因此想要添加一个定时任务需要先添加一个任务节点,示例如下:
添加定里任务
这里按照以下图片进行添加即可:
7、优化
由于脚本中使用到了nohup,所以在run.sh目录会生成nohup.out日志文件,随着时间的推移,此文件会越来越多,最后可能会占用一大部分空间。可以通过改变nohup输出方式来优化,具体请查看Linux nohup不输出日志文件的方法
8、执行脚本随服务器启动设置
直接在服务器中的脚本/etc/rc.d/rc.local(和/etc/rc.local是同一个文件,软链)末尾添加自己的脚本。
然后,增加执行权限chmod +x /etc/rc.d/rc.local。
具体操作请参考:Linux服务器开机自动启动服务或脚本的方法