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下,如果想換位置,可以是用復制的方法復制到指定目錄,然后再解壓,或是先進入到指定目錄,然后再該目錄中解壓
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目錄及相關文件截圖
腳本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 &'
修改文件權限,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-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服務器開機自動啟動服務或腳本的方法