局域网批量安装更新程序,如果设计到自动化脚本,请用go写出来
时间: 2024-05-13 13:19:29 浏览: 15
以下是一个使用Go编写的局域网批量安装更新程序的自动化脚本:
```go
package main
import (
"bufio"
"fmt"
"os"
"os/exec"
"strings"
)
func main() {
// 获取需要更新的设备列表
devices := getDevices()
if len(devices) == 0 {
fmt.Println("No devices found.")
return
}
// 执行更新程序
for _, device := range devices {
fmt.Printf("Updating device: %s\n", device)
cmd := exec.Command("ssh", device, "/path/to/update/program")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
fmt.Printf("Failed to update device %s: %v\n", device, err)
}
}
fmt.Println("All devices updated.")
}
func getDevices() []string {
var devices []string
scanner := bufio.NewScanner(os.Stdin)
fmt.Print("Enter device IPs (one per line, empty line to finish): ")
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
if line == "" {
break
}
devices = append(devices, line)
}
return devices
}
```
使用方法:
1. 将上述代码保存为`update.go`文件。
2. 在终端中进入`update.go`所在的目录。
3. 执行`go build`命令编译程序。
4. 执行`./update`命令启动程序。
5. 按照提示输入需要更新的设备的IP地址,每个IP地址占一行,输入完毕后输入一个空行结束。
程序会依次对每个设备执行更新程序,并输出更新过程中的日志。如果某个设备更新失败,程序会在控制台上提示。