🧐 预置升级任务,Agent 可禁止自动升级

This commit is contained in:
naiba
2021-09-27 21:24:04 +08:00
parent 4249fa82d7
commit 18483c0cb1
3 changed files with 16 additions and 7 deletions

View File

@@ -97,7 +97,13 @@ func run() {
if _, err := semver.Parse(version); err == nil && !agentConf.DisableAutoUpdate {
go func() {
for range updateCh {
go doSelfUpdate()
go func() {
defer func() {
time.Sleep(time.Minute * 20)
updateCh <- struct{}{}
}()
doSelfUpdate()
}()
}
}()
updateCh <- struct{}{}
@@ -186,6 +192,8 @@ func doTask(task *pb.Task) {
handleTcpPingTask(task, &result)
case model.TaskTypeCommand:
handleCommandTask(task, &result)
case model.TaskTypeUpgrade:
handleUpgradeTask(task, &result)
default:
println("不支持的任务:", task)
}
@@ -217,10 +225,6 @@ func reportState() {
}
func doSelfUpdate() {
defer func() {
time.Sleep(time.Minute * 20)
updateCh <- struct{}{}
}()
v := semver.MustParse(version)
println("检查更新:", v)
latest, err := selfupdate.UpdateSelf(v, "naiba/nezha")
@@ -233,6 +237,10 @@ func doSelfUpdate() {
}
}
func handleUpgradeTask(task *pb.Task, result *pb.TaskResult) {
doSelfUpdate()
}
func handleTcpPingTask(task *pb.Task, result *pb.TaskResult) {
start := time.Now()
conn, err := net.DialTimeout("tcp", task.GetData(), time.Second*10)