| | |
| | | pwd := config.Server.SudoPassword |
| | | cmdStr := fmt.Sprintf("echo %s | sudo -S %s", pwd, cmd) |
| | | |
| | | return exec.Command("/bin/sh", "-c", cmdStr).Output() |
| | | return exec.Command("/bin/bash", "-c", cmdStr).Output() |
| | | } |
| | | |
| | | // 检查 root权限 |
| | | func CheckRootPermissions() bool { |
| | | showRootCMD := exec.Command("/bin/sh", "-c", "ls /root/") |
| | | showRootCMD := exec.Command("/bin/bash", "-c", "ls /root/") |
| | | if _, err := showRootCMD.Output(); err != nil { |
| | | return false |
| | | } |
| | |
| | | |
| | | // 获取本机网关ip |
| | | func GetDefaultRoute(networkName string) (route string, err error) { |
| | | cmdStr := fmt.Sprintf("ip route show | grep -P \"^default.*%s\" | awk '{printf $3}'", networkName) |
| | | cmdStr := fmt.Sprintf("ip route show | grep -P \"^default.*%s onlink\" | awk '{printf $3}'", networkName) |
| | | cmd := exec.Command("/bin/sh", "-c", cmdStr) |
| | | b, err := cmd.Output() |
| | | if err != nil { |
| | |
| | | |
| | | // 配置服务器网络 |
| | | func SetNetworkConfig(ipv4, netmask, gateway, dns string) (bool, string) { |
| | | networkConfigScript := "/opt/vasystem/bin/netconfig" |
| | | networkConfigScript := "/opt/vasystem/script/netconfig" |
| | | ifname := config.Server.NetworkAdapter |
| | | localIPv4, localNetMask, _ := GetLocalIP(ifname) |
| | | localGW, _ := GetDefaultRoute(ifname) |
| | |
| | | |
| | | return err == nil |
| | | } |
| | | |
| | | const ngConfig = "/opt/vasystem/config/system-2.0.conf" |
| | | func GetNginxListenPort() string { |
| | | _, err := os.Stat(ngConfig) |
| | | if err != nil { |
| | | return "7003" |
| | | } |
| | | |
| | | cmdStr := fmt.Sprintf("cat %s | grep listen | awk '{printf $2}' | sed 's/;//g'", ngConfig) |
| | | cmd := exec.Command("/bin/sh", "-c", cmdStr) |
| | | port, err := cmd.Output() |
| | | if err != nil { |
| | | return "" |
| | | } |
| | | |
| | | return string(port) |
| | | } |
| | | |
| | | func SetNginxListenPort(port string) bool { |
| | | _, err := os.Stat(ngConfig) |
| | | if err != nil { |
| | | return false |
| | | } |
| | | |
| | | // 修改配置文件端口 |
| | | cmdStr := fmt.Sprintf("sed -i 's/listen.*/listen %s;/' %s", port, ngConfig) |
| | | cmd := exec.Command("/bin/sh", "-c", cmdStr) |
| | | _, err = cmd.Output() |
| | | if err != nil { |
| | | return false |
| | | } |
| | | |
| | | // 重启nginx |
| | | _, err = execRootCommand("service nginx reload") |
| | | |
| | | return err == nil |
| | | } |