"src/page/main/authority/user/add/index.vue" did not exist on "83d441347c400bb1fb1cd03f7cce8ae4bcd55852"
Commit 5374a9a2 authored by 陈子龙's avatar 陈子龙

主机ip定时任务 fix

parent 2d7aa2c2
......@@ -20,6 +20,7 @@ require (
github.com/minio/minio-go/v7 v7.0.58
github.com/mojocn/base64Captcha v1.3.5
github.com/pkg/errors v0.9.1
github.com/robfig/cron v1.2.0
github.com/satori/go.uuid v1.2.0
github.com/spf13/cast v1.5.0
github.com/spf13/pflag v1.0.5
......
......@@ -382,6 +382,8 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
......
......@@ -2,6 +2,7 @@ package main
import (
"fmt"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/service/cron"
"net/http"
"os"
"time"
......@@ -39,6 +40,10 @@ func main() {
go client.GetDbClient()
// redis client
go client.GetRedisClient()
//启动定时任务
cron.StartCron()
// server start...
conf.Logger.Error("server start err", zap.Error(newServer().ListenAndServe()))
}
......
......@@ -36,10 +36,10 @@ func InitAutomatedMaintenRouter(e *gin.Engine) {
host.PUT("/edit", controller.EditHostManage) // 编辑
host.DELETE("/del", controller.DelHostManage) // 删除
host.GET("/details", controller.DetailsHostManage) // 详情
host.GET("/page_list", controller.PageListHostManage) // 列表-分页
host.GET("/page_list", controller.PageListHostManage) // 列表
host.POST("/state", controller.StateHostManage) // 状态检测
host.GET("/ip_exception_list", controller.HostIpExceptionList) // 主机ip异常列表
host.GET("/export", controller.ExportIp) // 导出ip列表
host.GET("/list", controller.ListHostManage) // 主机分组列表
host.GET("/list", controller.ListHostManage) // 主机分组列表-不分页
}
}
package cron
import (
"github.com/robfig/cron"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/service"
)
func StartCron() {
c := cron.New()
defer c.Start()
c.AddFunc("0 0 0 * * *", service.CronStatusDetection) // 每天凌晨12状态检测
}
......@@ -451,7 +451,7 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL
return
}
// HostIpExceptionList 列表点击状态检测
// HostIpExceptionList 列表点击状态检测后展示-异常列表
func (h *HostManageSvc) HostIpExceptionList(req request.HostIpExceptionListReq) (total int64, hostManageListRes []response.HostManageListRes, err error) {
db, err := client.GetDbClient()
if err != nil {
......@@ -470,7 +470,7 @@ func (h *HostManageSvc) HostIpExceptionList(req request.HostIpExceptionListReq)
return
}
// SaveIpExceptionList 保存时状态检测异常列表
// SaveIpExceptionList 保存时状态检测后展示-异常列表
func (h *HostManageSvc) SaveIpExceptionList(req request.HostIpExceptionListReq) (total int64, hostManageListCacheRes []response.HostManageListCache, err error) {
db, err := client.GetDbClient()
if err != nil {
......@@ -635,3 +635,53 @@ func (h *HostManageSvc) ListHostManage() (hostManagesListRes []response.HostMana
}
return
}
// CronStatusDetection 定时任务-状态检测
func CronStatusDetection() {
db, err := client.GetDbClient()
if err != nil {
fmt.Println("CronStatusDetection err:", err.Error())
return
}
//查询主机IP列表
hostManageList := make([]response.HostManageListRes, 0)
finder := db.Table("host_manage_list").Where("is_delete = 0")
err = finder.Find(&hostManageList)
if err != nil {
fmt.Println("CronStatusDetection err:", err.Error())
return
}
//往hosts文件中写入主机组ip
//f, err := os.OpenFile("/etc/ansible/hosts", os.O_APPEND|os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0777)
//if err != nil {
// fmt.Println("CronStatusDetection err:", err.Error())
// return
//}
//defer f.Close()
//_, err = f.Write([]byte(fmt.Sprintf("%s%d\n", AnsibleGroup, req.Id)))
//if err != nil {
// fmt.Println("CronStatusDetection err:", err.Error())
// return
//}
//for _, v := range hostManageList {
// _, err = f.Write([]byte(fmt.Sprintf("%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=\"%s\" ansible_ssh_pass=\"%s\"\n", v.Ip, v.Ip, v.Port, v.UserName, v.Password)))
// if err != nil {
// fmt.Println("CronStatusDetection err:", err.Error())
// return
// }
//}
for _, v := range hostManageList {
//修改状态
_, err = db.Table("host_manage_list").Where("is_delete = 0 AND id = ?", v.Id).
Cols("conn_status").Update(&entity.HostManageList{
ConnStatus: StatusDetection(v.Ip),
})
if err != nil {
fmt.Println("CronStatusDetection err:", err.Error())
return
}
}
fmt.Println("CronPersonalCardDate success!")
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment