天天看點

gocron定時任務的安裝與運作詳解

1、安裝Go

使用go程式必須先有go,Linux下的安裝

​yum install go​

檢視安裝版本

​go version​

2、下載下傳gocron

gocron需要使用下載下傳gocron和gocron-node

這裡采用二進制檔案的方式安裝,因為go已經把源碼打包成了可執行檔案,下載下傳下來直接運作就可以了,不需要自己去編譯和配置依賴

下載下傳執行檔案的位址是:

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

看清楚自己的系統,需要下載下傳gocron和gocron-node兩個包,gocron是web配置平台,gocron-node是需要在想要執行任務的節點伺服器部署的程式

下載下傳的時候有時候速度比較慢,多試幾次就可以了

​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、解壓

選擇合适的目錄解壓,解壓指令:

​tar -xvf gocron-v1.5.1-linux-amd64.tar.gz​

​tar -xvf gocron-node-v1.5.1-linux-amd64.tar.gz​

我解壓的位置在wwwroot下,如果想換位置,可以是用複制的方法複制到指定目錄,然後再解壓,或是先進入到指定目錄,然後再該目錄中解壓
gocron定時任務的安裝與運作詳解

4、運作

分别進入gocron和gocron-node目錄中運作:

啟動gocron(為了安全,不使用root執行,而使用使用者www來執行):

​sudo -u www ./gocron-v1.5.1-linux-amd64/gocron web​

啟動gocron-node(不允許使用root執行,如果使用的是root執行則會失敗):

​sudo -u www ./gocron-node-v1.5.1-linux-amd64/gocron-node​

安裝時發現啟動上述程式,不管啟動哪個,都不能按Ctrl + C來終止或關閉SSH用戶端,否則直接退出。

5、換成背景腳本運作

建立gocron的shell腳本run.sh,gocron目錄及相關檔案截圖

gocron定時任務的安裝與運作詳解
腳本run.sh:

#!/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目錄及相關檔案截圖

#!/bin/bash
#啟動gocron-node
cd /data/wwwroot/gocron/gocron-node-linux-amd64
sudo -u www bash -c 'nohup ./gocron-node &'
      
gocron定時任務的安裝與運作詳解

修改檔案權限,run.sh需要執行權限

​chmod -R 777 run.sh​

修改指定檔案所屬權限組,例如

​chown -R www:www run.sh​

傳回到/data/wwwroot/gocron/目錄,腳本運作gocron和gocron-node

source ./gocron-linux-amd64/run.sh
source ./gocron-node-linux-amd64/run.sh
      
gocron定時任務的安裝與運作詳解

已成功啟動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管理視窗

gocron定時任務的安裝與運作詳解

首頁打開需要進行一些安裝配置

gocron定時任務的安裝與運作詳解

安裝完成後會跳轉到登入界面

gocron定時任務的安裝與運作詳解
gocron定時任務的安裝與運作詳解

添加任務節點

這裡的每個定時任務都需要在一個任務節點下,是以想要添加一個定時任務需要先添加一個任務節點,示例如下:

gocron定時任務的安裝與運作詳解
gocron定時任務的安裝與運作詳解

添加定裡任務

這裡按照以下圖檔進行添加即可:

gocron定時任務的安裝與運作詳解
gocron定時任務的安裝與運作詳解

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。

繼續閱讀