Centos 测试完成
This commit is contained in:
parent
7b00c87282
commit
b85209a4c5
@ -189,16 +189,16 @@ func loadIPRanges() []*net.IPAddr {
|
|||||||
}
|
}
|
||||||
} else { // 从文件中获取 IP 段数据
|
} else { // 从文件中获取 IP 段数据
|
||||||
if IPFile == "" {
|
if IPFile == "" {
|
||||||
return ToNetAddr()
|
IPFile = defaultInputFile
|
||||||
}
|
}
|
||||||
file, err := os.Open(IPFile)
|
file, err := os.Open(IPFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
return ToNetAddr()
|
||||||
}
|
}
|
||||||
defer func(file *os.File) {
|
defer func(file *os.File) {
|
||||||
err = file.Close()
|
err = file.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}(file)
|
}(file)
|
||||||
scanner := bufio.NewScanner(file)
|
scanner := bufio.NewScanner(file)
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
@ -16,9 +17,9 @@ var (
|
|||||||
func (s DownloadSpeedSet) DockerSet() {
|
func (s DownloadSpeedSet) DockerSet() {
|
||||||
// 选择最优的节点
|
// 选择最优的节点
|
||||||
bestIP := s[0].IP
|
bestIP := s[0].IP
|
||||||
bestSpeed := s[0].DownloadSpeed
|
bestSpeed := convertToString(s)[0][5]
|
||||||
// 自动优选节点 最高速度为 0 时,不进行优选
|
// 自动优选节点 最高速度为 0 时,不进行优选
|
||||||
if bestSpeed == 0 {
|
if bestSpeed == "0" {
|
||||||
fmt.Println("\n[信息] 未找到最优节点,跳过优选节点。")
|
fmt.Println("\n[信息] 未找到最优节点,跳过优选节点。")
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
@ -125,7 +126,18 @@ func writeHostsFile(hostsFilePath, bestIP string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isDockerInstalled 检查Docker是否安装
|
||||||
|
func isDockerInstalled() bool {
|
||||||
|
cmd := exec.Command("docker", "version")
|
||||||
|
err := cmd.Run()
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
|
||||||
func SetDockerAccelerator(dockerUrl string) error {
|
func SetDockerAccelerator(dockerUrl string) error {
|
||||||
|
if !isDockerInstalled() {
|
||||||
|
return fmt.Errorf("docker 未安装")
|
||||||
|
}
|
||||||
|
|
||||||
system := runtime.GOOS
|
system := runtime.GOOS
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
@ -144,6 +156,38 @@ func SetDockerAccelerator(dockerUrl string) error {
|
|||||||
return fmt.Errorf("设置 Docker 加速器失败: %w", err)
|
return fmt.Errorf("设置 Docker 加速器失败: %w", err)
|
||||||
}
|
}
|
||||||
fmt.Println("\n[信息] Docker 加速器已设置为:", dockerUrl)
|
fmt.Println("\n[信息] Docker 加速器已设置为:", dockerUrl)
|
||||||
|
// 询问是否重启 Docker 服务
|
||||||
|
fmt.Print("\n[提示] 是否重启 Docker 服务?(y/n): ")
|
||||||
|
var input string
|
||||||
|
_, _ = fmt.Scanln(&input)
|
||||||
|
if strings.ToLower(input) == "y" {
|
||||||
|
err = RestartDocker()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("重启 Docker 服务失败: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func RestartDocker() error {
|
||||||
|
var cmd *exec.Cmd
|
||||||
|
switch runtime.GOOS {
|
||||||
|
case "windows":
|
||||||
|
cmd = exec.Command("powershell", "Restart-Service", "docker")
|
||||||
|
case "darwin":
|
||||||
|
cmd = exec.Command("brew", "services", "restart", "docker")
|
||||||
|
case "linux":
|
||||||
|
cmd = exec.Command("sudo", "service", "docker", "restart")
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("不支持的操作系统:%s", runtime.GOOS)
|
||||||
|
}
|
||||||
|
|
||||||
|
err := cmd.Run()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("重启 Docker 服务失败: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Docker 服务已重启。")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user