Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
chain33-pai
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
szh
chain33-pai
Commits
f9a22b5b
Commit
f9a22b5b
authored
Dec 24, 2019
by
szh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加服务器状态接口
parent
01ac85bc
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
77 additions
and
8 deletions
+77
-8
README.md
README.md
+21
-0
process.go
pkg/app/process.go
+25
-2
code.go
pkg/e/code.go
+1
-0
msg.go
pkg/e/msg.go
+4
-3
util.go
pkg/util/util.go
+18
-2
pai.go
routers/api/v1/pai.go
+6
-0
router.go
routers/router.go
+2
-1
No files found.
README.md
View file @
f9a22b5b
...
@@ -255,7 +255,28 @@ response
...
@@ -255,7 +255,28 @@ response
}
}
```
```
### 获取树莓派服务器相关信息 内网接口
URL /pai/serverstatus
请求方法 post json
|参数|类型|是否必填|说明|
|-|-|-|-|
```
response
{
"code": 200,
"msg": "ok",
"data": {
"disks":[]
"nodeProcesssInfo":{}
"error":
}
}
```
## 节点部署:
## 节点部署:
监控程序代码默认放在/home/pi目录下面
监控程序代码默认放在/home/pi目录下面
...
...
pkg/app/process.go
View file @
f9a22b5b
...
@@ -16,6 +16,8 @@ import (
...
@@ -16,6 +16,8 @@ import (
"strings"
"strings"
"time"
"time"
"io/ioutil"
"io/ioutil"
"chain33-pai/pkg/util"
"chain33-pai/pkg/e"
)
)
type
ProcessInfo
struct
{
type
ProcessInfo
struct
{
...
@@ -34,20 +36,21 @@ type updateInfo struct {
...
@@ -34,20 +36,21 @@ type updateInfo struct {
type
Server
struct
{
type
Server
struct
{
Disks
[]
*
Disk
//硬盘信息
Disks
[]
*
Disk
//硬盘信息
NodeProcesssInfo
ProcessInfo
//节点信息
NodeProcesssInfo
ProcessInfo
//节点信息
Error
error
//错误信息
Error
string
//错误信息
}
}
type
Disk
struct
{
type
Disk
struct
{
UseP
string
//硬盘使用率
Filesystem
string
Filesystem
string
Type
string
//硬盘格式
Type
string
//硬盘格式
SizeK
string
//硬盘大小
SizeK
string
//硬盘大小
Use
string
}
}
var
BityuanFlag
bool
//true表示有任务在占用,禁止其他重复操作
var
BityuanFlag
bool
//true表示有任务在占用,禁止其他重复操作
var
Bityuan
ProcessInfo
var
Bityuan
ProcessInfo
var
UpdateInfo
updateInfo
var
UpdateInfo
updateInfo
var
NodeError
error
var
NodeError
error
var
ServerStatus
Server
func
getProcessInfo
(
keyfile
string
)
string
{
func
getProcessInfo
(
keyfile
string
)
string
{
var
buffer
bytes
.
Buffer
//
var
buffer
bytes
.
Buffer
//
...
@@ -109,6 +112,7 @@ func getWalletInfo()error{
...
@@ -109,6 +112,7 @@ func getWalletInfo()error{
Bityuan
.
Pid
=
record
[
1
]
Bityuan
.
Pid
=
record
[
1
]
Bityuan
.
Path
=
record
[
10
]
Bityuan
.
Path
=
record
[
10
]
Bityuan
.
PName
=
path
.
Base
(
Bityuan
.
Path
)
Bityuan
.
PName
=
path
.
Base
(
Bityuan
.
Path
)
ServerStatus
.
NodeProcesssInfo
=
Bityuan
}
}
return
nil
return
nil
}
}
...
@@ -234,6 +238,25 @@ func MonitorServer() error {
...
@@ -234,6 +238,25 @@ func MonitorServer() error {
return
err
return
err
}
}
log
.
Println
(
"MonitorServer"
,
string
(
content
))
log
.
Println
(
"MonitorServer"
,
string
(
content
))
list
:=
strings
.
Split
(
string
(
content
),
"
\n
"
)
tempDisk
:=
make
([]
*
Disk
,
0
)
for
_
,
v
:=
range
list
{
c
:=
strings
.
Contains
(
v
,
"/dev/sd"
)
if
c
{
tempD
:=
&
Disk
{}
params
:=
strings
.
Split
(
util
.
DeleteExtraSpace
(
v
),
" "
)
if
len
(
params
)
==
7
{
tempD
.
Filesystem
=
params
[
0
]
tempD
.
Type
=
params
[
1
]
tempD
.
SizeK
=
params
[
2
]
tempD
.
Use
=
params
[
5
]
tempDisk
=
append
(
tempDisk
,
tempD
)
}
else
{
ServerStatus
.
Error
=
e
.
GetMsg
(
e
.
DF_ERROR
)
break
}
}
}
return
nil
return
nil
}
}
...
...
pkg/e/code.go
View file @
f9a22b5b
...
@@ -15,6 +15,7 @@ const (
...
@@ -15,6 +15,7 @@ const (
RM_ERROR
=
5008
RM_ERROR
=
5008
MV_ERROR
=
5009
MV_ERROR
=
5009
TRY_LATER
=
5010
TRY_LATER
=
5010
DF_ERROR
=
5011
ERROR_EXIST_TAG
=
10001
ERROR_EXIST_TAG
=
10001
ERROR_EXIST_TAG_FAIL
=
10002
ERROR_EXIST_TAG_FAIL
=
10002
ERROR_NOT_EXIST_TAG
=
10003
ERROR_NOT_EXIST_TAG
=
10003
...
...
pkg/e/msg.go
View file @
f9a22b5b
...
@@ -7,9 +7,10 @@ var MsgFlags = map[int]string{
...
@@ -7,9 +7,10 @@ var MsgFlags = map[int]string{
DOWNLOAD_ERROR
:
"下载出错"
,
DOWNLOAD_ERROR
:
"下载出错"
,
TAR_XVF_ERROR
:
"解压文件出错"
,
TAR_XVF_ERROR
:
"解压文件出错"
,
CP_ERROR
:
"拷贝文件出错"
,
CP_ERROR
:
"拷贝文件出错"
,
RM_ERROR
:
"删除文件出错"
,
RM_ERROR
:
"删除文件出错"
,
MV_ERROR
:
"移动文件出错"
,
MV_ERROR
:
"移动文件出错"
,
TRY_LATER
:
"其他任务进行中,稍后再试"
,
TRY_LATER
:
"其他任务进行中,稍后再试"
,
DF_ERROR
:
"df命令执行异常"
,
ERROR_EXIST_TAG
:
"已存在该标签名称"
,
ERROR_EXIST_TAG
:
"已存在该标签名称"
,
ERROR_EXIST_TAG_FAIL
:
"获取已存在标签失败"
,
ERROR_EXIST_TAG_FAIL
:
"获取已存在标签失败"
,
ERROR_NOT_EXIST_TAG
:
"该标签不存在"
,
ERROR_NOT_EXIST_TAG
:
"该标签不存在"
,
...
...
pkg/util/util.go
View file @
f9a22b5b
...
@@ -6,6 +6,8 @@ import (
...
@@ -6,6 +6,8 @@ import (
"errors"
"errors"
"net/http"
"net/http"
"io/ioutil"
"io/ioutil"
"strings"
"regexp"
)
)
// Setup Initialize the util
// Setup Initialize the util
...
@@ -50,4 +52,19 @@ func GetExternal() (string,error) {
...
@@ -50,4 +52,19 @@ func GetExternal() (string,error) {
defer
resp
.
Body
.
Close
()
defer
resp
.
Body
.
Close
()
content
,
_
:=
ioutil
.
ReadAll
(
resp
.
Body
)
content
,
_
:=
ioutil
.
ReadAll
(
resp
.
Body
)
return
string
(
content
),
nil
return
string
(
content
),
nil
}
}
\ No newline at end of file
func
DeleteExtraSpace
(
s
string
)
string
{
//删除字符串中的多余空格,有多个空格时,仅保留一个空格
s1
:=
strings
.
Replace
(
s
,
" "
,
" "
,
-
1
)
//替换tab为空格
regstr
:=
"
\\
s{2,}"
//两个及两个以上空格的正则表达式
reg
,
_
:=
regexp
.
Compile
(
regstr
)
//编译正则表达式
s2
:=
make
([]
byte
,
len
(
s1
))
//定义字符数组切片
copy
(
s2
,
s1
)
//将字符串复制到切片
spc_index
:=
reg
.
FindStringIndex
(
string
(
s2
))
//在字符串中搜索
for
len
(
spc_index
)
>
0
{
//找到适配项
s2
=
append
(
s2
[
:
spc_index
[
0
]
+
1
],
s2
[
spc_index
[
1
]
:
]
...
)
//删除多余空格
spc_index
=
reg
.
FindStringIndex
(
string
(
s2
))
//继续在字符串中搜索
}
return
string
(
s2
)
}
routers/api/v1/pai.go
View file @
f9a22b5b
...
@@ -177,4 +177,9 @@ func GetExternal(c *gin.Context) {
...
@@ -177,4 +177,9 @@ func GetExternal(c *gin.Context) {
return
return
}
}
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
ip
)
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
ip
)
}
func
GetServerStatus
(
c
*
gin
.
Context
)
{
appG
:=
app
.
Gin
{
C
:
c
}
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
app
.
ServerStatus
)
}
}
\ No newline at end of file
routers/router.go
View file @
f9a22b5b
...
@@ -33,7 +33,8 @@ func InitRouter() *gin.Engine {
...
@@ -33,7 +33,8 @@ func InitRouter() *gin.Engine {
apiv1
.
POST
(
"/dpercent"
,
v1
.
GetDPercent
)
apiv1
.
POST
(
"/dpercent"
,
v1
.
GetDPercent
)
//获取外网ip
//获取外网ip
apiv1
.
POST
(
"/external"
,
v1
.
GetExternal
)
apiv1
.
POST
(
"/external"
,
v1
.
GetExternal
)
//
//服务器状态
apiv1
.
POST
(
"/serverstatus"
,
v1
.
GetServerStatus
)
return
r
return
r
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment