gocron定时任务的安装与运行详解

1.安装Go

使用go程序必须先有go,Linux下的安装

查看安装版本

2.下载gocron

gocron需要使用下载gocron和gocron-node

这里采用二进制文件的方式安装,因为go已经把源码打包成了可执行文件,下载下来直接运行就可以了,不需要自己去编译和配置依赖

下载执行文件的地址是:

https://github.com/ouqiang/gocron/releases

看清楚自己的系统,需要下载gocron和gocron-node两个包,gocron是web配置平台,gocron-node是需要在想要执行任务的节点服务器部署的程序

下载的时候有时候速度比较慢,多试几次就可以了

3、解压

选择合适的目录解压,解压命令:

我解压的位置在wwwroot下,如果想换位置,可以是用复制的方法复制到指定目录,然后再解压,或是先进入到指定目录,然后再该目录中解压

4、运行

分别进入gocron和gocron-node目录中运行:

启动gocron(为了安全,不使用root执行,而使用用户www来执行):

启动gocron-node(不允许使用root执行,如果使用的是root执行则会失败):

安装时发现启动上述程序,不管启动哪个,都不能按Ctrl + C来终止或关闭SSH客户端,否则直接退出。

5、换成后台脚本运行

创建gocron的shell脚本run.sh,gocron目录及相关文件截图

脚本run.sh:

创建gocron-node的shell脚本run.sh,gocron-node目录及相关文件截图

修改文件权限,run.sh需要执行权限

修改指定文件所属权限组,例如

返回到/data/wwwroot/gocron/目录,脚本运行gocron和gocron-node

已成功启动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服务器开机自动启动服务或脚本的方法

发表回复